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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/authorization_selector.d.ts +3 -6
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/decoder.d.ts +6 -45
  10. package/dest/abi/decoder.d.ts.map +1 -1
  11. package/dest/abi/decoder.js +17 -70
  12. package/dest/abi/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +64 -7
  15. package/dest/abi/event_metadata_definition.d.ts +3 -1
  16. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  17. package/dest/abi/event_metadata_definition.js +1 -1
  18. package/dest/abi/event_selector.d.ts +3 -6
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +39 -9
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_call.js +20 -3
  23. package/dest/abi/function_selector.d.ts +3 -6
  24. package/dest/abi/function_selector.d.ts.map +1 -1
  25. package/dest/abi/function_selector.js +2 -4
  26. package/dest/abi/function_signature_decoder.d.ts +43 -0
  27. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  28. package/dest/abi/function_signature_decoder.js +66 -0
  29. package/dest/abi/index.d.ts +2 -1
  30. package/dest/abi/index.d.ts.map +1 -1
  31. package/dest/abi/index.js +1 -0
  32. package/dest/abi/note_selector.d.ts +3 -6
  33. package/dest/abi/note_selector.d.ts.map +1 -1
  34. package/dest/abi/note_selector.js +1 -3
  35. package/dest/abi/selector.d.ts +2 -2
  36. package/dest/abi/selector.d.ts.map +1 -1
  37. package/dest/abi/selector.js +1 -1
  38. package/dest/abi/utils.d.ts +14 -1
  39. package/dest/abi/utils.d.ts.map +1 -1
  40. package/dest/abi/utils.js +15 -0
  41. package/dest/auth_witness/auth_witness.js +3 -3
  42. package/dest/avm/avm_proving_request.d.ts +166 -166
  43. package/dest/avm/revert_code.d.ts +9 -4
  44. package/dest/avm/revert_code.d.ts.map +1 -1
  45. package/dest/avm/revert_code.js +16 -21
  46. package/dest/aztec-address/index.d.ts +3 -6
  47. package/dest/aztec-address/index.d.ts.map +1 -1
  48. package/dest/aztec-address/index.js +2 -4
  49. package/dest/block/attestation_info.d.ts +3 -2
  50. package/dest/block/attestation_info.d.ts.map +1 -1
  51. package/dest/block/attestation_info.js +7 -5
  52. package/dest/block/block_data.d.ts +341 -0
  53. package/dest/block/block_data.d.ts.map +1 -0
  54. package/dest/block/block_data.js +26 -0
  55. package/dest/block/block_hash.d.ts +11 -10
  56. package/dest/block/block_hash.d.ts.map +1 -1
  57. package/dest/block/block_hash.js +10 -9
  58. package/dest/block/block_parameter.d.ts +30 -3
  59. package/dest/block/block_parameter.d.ts.map +1 -1
  60. package/dest/block/block_parameter.js +36 -2
  61. package/dest/block/in_block.js +1 -1
  62. package/dest/block/index.d.ts +2 -1
  63. package/dest/block/index.d.ts.map +1 -1
  64. package/dest/block/index.js +1 -0
  65. package/dest/block/l2_block.d.ts +9 -1
  66. package/dest/block/l2_block.d.ts.map +1 -1
  67. package/dest/block/l2_block.js +12 -2
  68. package/dest/block/l2_block_info.d.ts +6 -5
  69. package/dest/block/l2_block_info.d.ts.map +1 -1
  70. package/dest/block/l2_block_info.js +6 -5
  71. package/dest/block/l2_block_source.d.ts +149 -10
  72. package/dest/block/l2_block_source.d.ts.map +1 -1
  73. package/dest/block/l2_block_source.js +1 -0
  74. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  75. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  76. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  77. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  78. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  79. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  80. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  82. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  83. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  84. package/dest/block/proposal/attestations_and_signers.js +26 -18
  85. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  86. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  87. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  88. package/dest/checkpoint/checkpoint.d.ts +28 -7
  89. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  90. package/dest/checkpoint/checkpoint.js +41 -17
  91. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  92. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  93. package/dest/checkpoint/checkpoint_data.js +38 -0
  94. package/dest/checkpoint/index.d.ts +3 -1
  95. package/dest/checkpoint/index.d.ts.map +1 -1
  96. package/dest/checkpoint/index.js +2 -0
  97. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  98. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  99. package/dest/checkpoint/published_checkpoint.js +1 -2
  100. package/dest/checkpoint/validate.d.ts +36 -0
  101. package/dest/checkpoint/validate.d.ts.map +1 -0
  102. package/dest/checkpoint/validate.js +120 -0
  103. package/dest/config/chain-config.d.ts +2 -2
  104. package/dest/config/chain-config.d.ts.map +1 -1
  105. package/dest/config/chain-config.js +9 -3
  106. package/dest/config/index.d.ts +3 -1
  107. package/dest/config/index.d.ts.map +1 -1
  108. package/dest/config/index.js +2 -0
  109. package/dest/config/pipelining-config.d.ts +19 -0
  110. package/dest/config/pipelining-config.d.ts.map +1 -0
  111. package/dest/config/pipelining-config.js +18 -0
  112. package/dest/config/sequencer-config.d.ts +12 -0
  113. package/dest/config/sequencer-config.d.ts.map +1 -0
  114. package/dest/config/sequencer-config.js +31 -0
  115. package/dest/contract/contract_address.d.ts +3 -3
  116. package/dest/contract/contract_address.js +7 -7
  117. package/dest/contract/contract_class.d.ts +2 -3
  118. package/dest/contract/contract_class.d.ts.map +1 -1
  119. package/dest/contract/contract_class_id.d.ts +3 -3
  120. package/dest/contract/contract_class_id.d.ts.map +1 -1
  121. package/dest/contract/contract_class_id.js +7 -6
  122. package/dest/contract/index.d.ts +1 -3
  123. package/dest/contract/index.d.ts.map +1 -1
  124. package/dest/contract/index.js +0 -2
  125. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  126. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  127. package/dest/contract/interfaces/contract_class.js +1 -28
  128. package/dest/contract/interfaces/node-info.d.ts +3 -1
  129. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  130. package/dest/contract/interfaces/node-info.js +2 -1
  131. package/dest/contract/private_function.d.ts +1 -1
  132. package/dest/contract/private_function.d.ts.map +1 -1
  133. package/dest/contract/private_function.js +4 -6
  134. package/dest/epoch-helpers/index.d.ts +15 -1
  135. package/dest/epoch-helpers/index.d.ts.map +1 -1
  136. package/dest/epoch-helpers/index.js +18 -2
  137. package/dest/file-store/factory.d.ts +4 -3
  138. package/dest/file-store/factory.d.ts.map +1 -1
  139. package/dest/file-store/factory.js +2 -2
  140. package/dest/file-store/http.d.ts +9 -2
  141. package/dest/file-store/http.d.ts.map +1 -1
  142. package/dest/file-store/http.js +20 -9
  143. package/dest/file-store/index.d.ts +2 -1
  144. package/dest/file-store/index.d.ts.map +1 -1
  145. package/dest/file-store/local.d.ts +3 -3
  146. package/dest/file-store/local.d.ts.map +1 -1
  147. package/dest/file-store/local.js +13 -4
  148. package/dest/file-store/s3.d.ts +1 -1
  149. package/dest/file-store/s3.d.ts.map +1 -1
  150. package/dest/file-store/s3.js +11 -3
  151. package/dest/gas/fee_math.d.ts +49 -0
  152. package/dest/gas/fee_math.d.ts.map +1 -0
  153. package/dest/gas/fee_math.js +80 -0
  154. package/dest/gas/gas_fees.d.ts +5 -1
  155. package/dest/gas/gas_fees.d.ts.map +1 -1
  156. package/dest/gas/gas_fees.js +13 -1
  157. package/dest/gas/gas_settings.d.ts +40 -3
  158. package/dest/gas/gas_settings.d.ts.map +1 -1
  159. package/dest/gas/gas_settings.js +50 -6
  160. package/dest/gas/index.d.ts +2 -1
  161. package/dest/gas/index.d.ts.map +1 -1
  162. package/dest/gas/index.js +1 -0
  163. package/dest/ha-signing/config.d.ts +136 -0
  164. package/dest/ha-signing/config.d.ts.map +1 -0
  165. package/dest/ha-signing/config.js +98 -0
  166. package/dest/ha-signing/index.d.ts +4 -0
  167. package/dest/ha-signing/index.d.ts.map +1 -0
  168. package/dest/ha-signing/index.js +3 -0
  169. package/dest/ha-signing/local_config.d.ts +63 -0
  170. package/dest/ha-signing/local_config.d.ts.map +1 -0
  171. package/dest/ha-signing/local_config.js +24 -0
  172. package/dest/ha-signing/types.d.ts +90 -0
  173. package/dest/ha-signing/types.d.ts.map +1 -0
  174. package/dest/ha-signing/types.js +39 -0
  175. package/dest/hash/hash.d.ts +35 -1
  176. package/dest/hash/hash.d.ts.map +1 -1
  177. package/dest/hash/hash.js +77 -10
  178. package/dest/hash/map_slot.js +2 -2
  179. package/dest/interfaces/allowed_element.d.ts +26 -20
  180. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  181. package/dest/interfaces/allowed_element.js +8 -8
  182. package/dest/interfaces/archiver.d.ts +11 -1
  183. package/dest/interfaces/archiver.d.ts.map +1 -1
  184. package/dest/interfaces/archiver.js +17 -3
  185. package/dest/interfaces/aztec-node-admin.d.ts +139 -48
  186. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  187. package/dest/interfaces/aztec-node-admin.js +17 -8
  188. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  189. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  190. package/dest/interfaces/aztec-node-debug.js +18 -0
  191. package/dest/interfaces/aztec-node.d.ts +59 -54
  192. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  193. package/dest/interfaces/aztec-node.js +23 -16
  194. package/dest/interfaces/block-builder.d.ts +39 -12
  195. package/dest/interfaces/block-builder.d.ts.map +1 -1
  196. package/dest/interfaces/block-builder.js +13 -6
  197. package/dest/interfaces/block_response.d.ts +156 -0
  198. package/dest/interfaces/block_response.d.ts.map +1 -0
  199. package/dest/interfaces/block_response.js +24 -0
  200. package/dest/interfaces/chain_tips.d.ts +304 -0
  201. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  202. package/dest/interfaces/chain_tips.js +11 -0
  203. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  204. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  205. package/dest/interfaces/checkpoint_parameter.js +20 -0
  206. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  207. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  208. package/dest/interfaces/checkpoint_response.js +26 -0
  209. package/dest/interfaces/client.d.ts +7 -1
  210. package/dest/interfaces/client.d.ts.map +1 -1
  211. package/dest/interfaces/client.js +6 -0
  212. package/dest/interfaces/configs.d.ts +82 -32
  213. package/dest/interfaces/configs.d.ts.map +1 -1
  214. package/dest/interfaces/configs.js +11 -3
  215. package/dest/interfaces/get_logs_response.d.ts +8 -1
  216. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  217. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  218. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  219. package/dest/interfaces/l1_publish_info.js +26 -0
  220. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  221. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  222. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  223. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  224. package/dest/interfaces/p2p.d.ts +4 -9
  225. package/dest/interfaces/p2p.d.ts.map +1 -1
  226. package/dest/interfaces/prover-broker.d.ts +16 -1
  227. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  228. package/dest/interfaces/prover-broker.js +4 -1
  229. package/dest/interfaces/prover-client.d.ts +11 -1
  230. package/dest/interfaces/prover-client.d.ts.map +1 -1
  231. package/dest/interfaces/prover-client.js +12 -4
  232. package/dest/interfaces/proving-job.d.ts +202 -202
  233. package/dest/interfaces/server.d.ts +6 -1
  234. package/dest/interfaces/server.d.ts.map +1 -1
  235. package/dest/interfaces/server.js +5 -0
  236. package/dest/interfaces/slasher.d.ts +9 -10
  237. package/dest/interfaces/slasher.d.ts.map +1 -1
  238. package/dest/interfaces/slasher.js +2 -2
  239. package/dest/interfaces/validator.d.ts +170 -64
  240. package/dest/interfaces/validator.d.ts.map +1 -1
  241. package/dest/interfaces/validator.js +12 -5
  242. package/dest/interfaces/world_state.d.ts +5 -4
  243. package/dest/interfaces/world_state.d.ts.map +1 -1
  244. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  245. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  246. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  247. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  248. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  249. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  250. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  251. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  252. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  253. package/dest/kernel/hints/index.d.ts +2 -2
  254. package/dest/kernel/hints/index.js +2 -2
  255. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  256. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  257. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  258. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  259. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  260. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  261. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  262. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  263. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  264. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  265. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  266. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  267. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  268. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  269. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  270. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  271. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  273. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  274. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  275. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  276. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  277. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  278. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  279. package/dest/kernel/private_validation_requests.d.ts +3 -3
  280. package/dest/kernel/private_validation_requests.js +9 -9
  281. package/dest/keys/derivation.js +8 -8
  282. package/dest/keys/key_types.d.ts +3 -3
  283. package/dest/keys/key_types.d.ts.map +1 -1
  284. package/dest/keys/public_keys.js +2 -2
  285. package/dest/keys/utils.js +5 -5
  286. package/dest/kv-store/config.d.ts +17 -0
  287. package/dest/kv-store/config.d.ts.map +1 -0
  288. package/dest/kv-store/config.js +26 -0
  289. package/dest/kv-store/index.d.ts +2 -0
  290. package/dest/kv-store/index.d.ts.map +1 -0
  291. package/dest/kv-store/index.js +1 -0
  292. package/dest/l1-contracts/index.d.ts +2 -2
  293. package/dest/l1-contracts/index.d.ts.map +1 -1
  294. package/dest/l1-contracts/index.js +1 -1
  295. package/dest/logs/debug_log_store.d.ts +30 -0
  296. package/dest/logs/debug_log_store.d.ts.map +1 -0
  297. package/dest/logs/debug_log_store.js +30 -0
  298. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  299. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  300. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  301. package/dest/logs/extended_public_log.d.ts +7 -1
  302. package/dest/logs/extended_public_log.d.ts.map +1 -1
  303. package/dest/logs/index.d.ts +4 -2
  304. package/dest/logs/index.d.ts.map +1 -1
  305. package/dest/logs/index.js +3 -1
  306. package/dest/logs/log_filter.d.ts +4 -1
  307. package/dest/logs/log_filter.d.ts.map +1 -1
  308. package/dest/logs/log_filter.js +2 -1
  309. package/dest/logs/log_id.d.ts +10 -7
  310. package/dest/logs/log_id.d.ts.map +1 -1
  311. package/dest/logs/log_id.js +16 -15
  312. package/dest/logs/message_context.d.ts +4 -7
  313. package/dest/logs/message_context.d.ts.map +1 -1
  314. package/dest/logs/message_context.js +23 -9
  315. package/dest/logs/pending_tagged_log.d.ts +2 -3
  316. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  317. package/dest/logs/pending_tagged_log.js +2 -2
  318. package/dest/logs/pre_tag.d.ts +16 -11
  319. package/dest/logs/pre_tag.d.ts.map +1 -1
  320. package/dest/logs/pre_tag.js +2 -2
  321. package/dest/logs/private_log.d.ts +2 -2
  322. package/dest/logs/private_log.d.ts.map +1 -1
  323. package/dest/logs/public_log.d.ts +4 -3
  324. package/dest/logs/public_log.d.ts.map +1 -1
  325. package/dest/logs/public_log.js +2 -1
  326. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  327. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  328. package/dest/logs/shared_secret_derivation.js +15 -9
  329. package/dest/logs/siloed_tag.d.ts +12 -9
  330. package/dest/logs/siloed_tag.d.ts.map +1 -1
  331. package/dest/logs/siloed_tag.js +16 -7
  332. package/dest/logs/tag.d.ts +5 -6
  333. package/dest/logs/tag.d.ts.map +1 -1
  334. package/dest/logs/tag.js +5 -1
  335. package/dest/logs/tagging_index_range.d.ts +40 -0
  336. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  337. package/dest/logs/tagging_index_range.js +8 -0
  338. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  339. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  340. package/dest/logs/tx_scoped_l2_log.js +7 -0
  341. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  342. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  343. package/dest/messaging/l1_to_l2_message.js +11 -13
  344. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  345. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  346. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  347. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  348. package/dest/messaging/l2_to_l1_membership.js +72 -29
  349. package/dest/noir/index.d.ts +3 -3
  350. package/dest/noir/index.d.ts.map +1 -1
  351. package/dest/note/index.d.ts +1 -2
  352. package/dest/note/index.d.ts.map +1 -1
  353. package/dest/note/index.js +0 -1
  354. package/dest/note/note_dao.d.ts +1 -1
  355. package/dest/note/note_dao.d.ts.map +1 -1
  356. package/dest/note/note_dao.js +1 -4
  357. package/dest/p2p/attestation_utils.d.ts +11 -1
  358. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  359. package/dest/p2p/attestation_utils.js +45 -0
  360. package/dest/p2p/block_proposal.d.ts +23 -15
  361. package/dest/p2p/block_proposal.d.ts.map +1 -1
  362. package/dest/p2p/block_proposal.js +46 -43
  363. package/dest/p2p/checkpoint_attestation.d.ts +11 -8
  364. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  365. package/dest/p2p/checkpoint_attestation.js +17 -24
  366. package/dest/p2p/checkpoint_proposal.d.ts +35 -22
  367. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  368. package/dest/p2p/checkpoint_proposal.js +52 -65
  369. package/dest/p2p/client_type.d.ts +2 -5
  370. package/dest/p2p/client_type.d.ts.map +1 -1
  371. package/dest/p2p/client_type.js +0 -7
  372. package/dest/p2p/consensus_payload.d.ts +27 -7
  373. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  374. package/dest/p2p/consensus_payload.js +40 -21
  375. package/dest/p2p/constants.d.ts +3 -1
  376. package/dest/p2p/constants.d.ts.map +1 -1
  377. package/dest/p2p/constants.js +1 -0
  378. package/dest/p2p/gossipable.d.ts +4 -4
  379. package/dest/p2p/gossipable.d.ts.map +1 -1
  380. package/dest/p2p/index.d.ts +1 -2
  381. package/dest/p2p/index.d.ts.map +1 -1
  382. package/dest/p2p/index.js +0 -1
  383. package/dest/p2p/peer_error.d.ts +3 -1
  384. package/dest/p2p/peer_error.d.ts.map +1 -1
  385. package/dest/p2p/peer_error.js +5 -0
  386. package/dest/p2p/signature_utils.d.ts +28 -19
  387. package/dest/p2p/signature_utils.d.ts.map +1 -1
  388. package/dest/p2p/signature_utils.js +118 -21
  389. package/dest/p2p/signed_txs.d.ts +15 -13
  390. package/dest/p2p/signed_txs.d.ts.map +1 -1
  391. package/dest/p2p/signed_txs.js +26 -24
  392. package/dest/p2p/topic_type.d.ts +3 -4
  393. package/dest/p2p/topic_type.d.ts.map +1 -1
  394. package/dest/p2p/topic_type.js +7 -24
  395. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  396. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  397. package/dest/parity/parity_base_private_inputs.js +7 -5
  398. package/dest/parity/parity_public_inputs.d.ts +7 -3
  399. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  400. package/dest/parity/parity_public_inputs.js +6 -3
  401. package/dest/proofs/chonk_proof.d.ts +46 -2
  402. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  403. package/dest/proofs/chonk_proof.js +85 -10
  404. package/dest/rollup/block_headers_hash.d.ts +1 -1
  405. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  406. package/dest/rollup/block_headers_hash.js +8 -2
  407. package/dest/rollup/checkpoint_header.d.ts +2 -2
  408. package/dest/rollup/checkpoint_header.js +2 -2
  409. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  410. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  411. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  412. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  413. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  414. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  415. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  416. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  417. package/dest/slashing/helpers.d.ts +2 -2
  418. package/dest/slashing/helpers.d.ts.map +1 -1
  419. package/dest/slashing/helpers.js +6 -0
  420. package/dest/slashing/index.d.ts +2 -3
  421. package/dest/slashing/index.d.ts.map +1 -1
  422. package/dest/slashing/index.js +1 -2
  423. package/dest/slashing/serialization.d.ts +2 -6
  424. package/dest/slashing/serialization.d.ts.map +1 -1
  425. package/dest/slashing/serialization.js +0 -60
  426. package/dest/slashing/types.d.ts +10 -92
  427. package/dest/slashing/types.d.ts.map +1 -1
  428. package/dest/slashing/types.js +13 -15
  429. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  430. package/dest/slashing/votes.d.ts.map +1 -0
  431. package/dest/slashing/{tally.js → votes.js} +35 -3
  432. package/dest/tests/factories.d.ts +5 -10
  433. package/dest/tests/factories.d.ts.map +1 -1
  434. package/dest/tests/factories.js +37 -56
  435. package/dest/tests/mocks.d.ts +14 -3
  436. package/dest/tests/mocks.d.ts.map +1 -1
  437. package/dest/tests/mocks.js +65 -46
  438. package/dest/timetable/index.d.ts +87 -0
  439. package/dest/timetable/index.d.ts.map +1 -0
  440. package/dest/timetable/index.js +243 -0
  441. package/dest/trees/nullifier_leaf.d.ts +2 -1
  442. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  443. package/dest/trees/nullifier_leaf.js +3 -0
  444. package/dest/trees/public_data_leaf.d.ts +2 -1
  445. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  446. package/dest/trees/public_data_leaf.js +7 -6
  447. package/dest/tx/block_header.d.ts +4 -2
  448. package/dest/tx/block_header.d.ts.map +1 -1
  449. package/dest/tx/block_header.js +7 -3
  450. package/dest/tx/capsule.d.ts +6 -2
  451. package/dest/tx/capsule.d.ts.map +1 -1
  452. package/dest/tx/capsule.js +9 -3
  453. package/dest/tx/fee_provider.d.ts +10 -0
  454. package/dest/tx/fee_provider.d.ts.map +1 -0
  455. package/dest/tx/fee_provider.js +1 -0
  456. package/dest/tx/global_variable_builder.d.ts +3 -4
  457. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  458. package/dest/tx/global_variables.d.ts +4 -4
  459. package/dest/tx/global_variables.d.ts.map +1 -1
  460. package/dest/tx/index.d.ts +2 -1
  461. package/dest/tx/index.d.ts.map +1 -1
  462. package/dest/tx/index.js +1 -0
  463. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  464. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  465. package/dest/tx/indexed_tx_effect.js +1 -2
  466. package/dest/tx/private_execution_result.d.ts +6 -6
  467. package/dest/tx/private_execution_result.d.ts.map +1 -1
  468. package/dest/tx/private_execution_result.js +6 -6
  469. package/dest/tx/profiling.d.ts +17 -5
  470. package/dest/tx/profiling.d.ts.map +1 -1
  471. package/dest/tx/profiling.js +19 -9
  472. package/dest/tx/protocol_contracts.d.ts +1 -1
  473. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  474. package/dest/tx/protocol_contracts.js +2 -2
  475. package/dest/tx/public_simulation_output.d.ts +4 -2
  476. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  477. package/dest/tx/public_simulation_output.js +7 -3
  478. package/dest/tx/simulated_tx.d.ts +116 -5
  479. package/dest/tx/simulated_tx.d.ts.map +1 -1
  480. package/dest/tx/simulated_tx.js +7 -4
  481. package/dest/tx/tx.d.ts +8 -7
  482. package/dest/tx/tx.d.ts.map +1 -1
  483. package/dest/tx/tx.js +18 -6
  484. package/dest/tx/tx_receipt.d.ts +29 -6
  485. package/dest/tx/tx_receipt.d.ts.map +1 -1
  486. package/dest/tx/tx_receipt.js +23 -19
  487. package/dest/tx/tx_request.js +2 -2
  488. package/dest/tx/validator/empty_validator.d.ts +2 -2
  489. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  490. package/dest/tx/validator/error_texts.d.ts +10 -2
  491. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  492. package/dest/tx/validator/error_texts.js +11 -1
  493. package/dest/tx/validator/tx_validator.d.ts +2 -2
  494. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  495. package/dest/types/shared.d.ts +1 -10
  496. package/dest/types/shared.d.ts.map +1 -1
  497. package/dest/types/shared.js +0 -9
  498. package/dest/update-checker/index.d.ts +3 -2
  499. package/dest/update-checker/index.d.ts.map +1 -1
  500. package/dest/update-checker/index.js +2 -1
  501. package/dest/update-checker/package_version.d.ts +3 -0
  502. package/dest/update-checker/package_version.d.ts.map +1 -0
  503. package/dest/update-checker/package_version.js +24 -0
  504. package/dest/update-checker/version_checker.d.ts +25 -0
  505. package/dest/update-checker/version_checker.d.ts.map +1 -0
  506. package/dest/update-checker/version_checker.js +50 -0
  507. package/dest/validators/errors.d.ts +6 -1
  508. package/dest/validators/errors.d.ts.map +1 -1
  509. package/dest/validators/errors.js +7 -0
  510. package/dest/validators/schemas.d.ts +30 -30
  511. package/dest/validators/schemas.d.ts.map +1 -1
  512. package/dest/validators/schemas.js +4 -3
  513. package/dest/validators/types.d.ts +3 -3
  514. package/dest/validators/types.d.ts.map +1 -1
  515. package/dest/versioning/versioning.d.ts +4 -2
  516. package/dest/versioning/versioning.d.ts.map +1 -1
  517. package/dest/versioning/versioning.js +4 -1
  518. package/dest/vks/verification_key.d.ts +2 -137
  519. package/dest/vks/verification_key.d.ts.map +1 -1
  520. package/dest/vks/verification_key.js +5 -126
  521. package/dest/world-state/genesis_data.d.ts +11 -0
  522. package/dest/world-state/genesis_data.d.ts.map +1 -0
  523. package/dest/world-state/genesis_data.js +4 -0
  524. package/dest/world-state/index.d.ts +2 -1
  525. package/dest/world-state/index.d.ts.map +1 -1
  526. package/dest/world-state/index.js +1 -0
  527. package/dest/world-state/world_state_revision.d.ts +8 -1
  528. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  529. package/dest/world-state/world_state_revision.js +7 -1
  530. package/package.json +24 -12
  531. package/src/abi/abi.ts +25 -2
  532. package/src/abi/authorization_selector.ts +2 -8
  533. package/src/abi/buffer.ts +25 -4
  534. package/src/abi/decoder.ts +36 -82
  535. package/src/abi/encoder.ts +85 -6
  536. package/src/abi/event_metadata_definition.ts +2 -0
  537. package/src/abi/event_selector.ts +2 -8
  538. package/src/abi/function_call.ts +25 -3
  539. package/src/abi/function_selector.ts +4 -13
  540. package/src/abi/function_signature_decoder.ts +77 -0
  541. package/src/abi/index.ts +1 -0
  542. package/src/abi/note_selector.ts +3 -12
  543. package/src/abi/selector.ts +1 -1
  544. package/src/abi/utils.ts +25 -0
  545. package/src/auth_witness/auth_witness.ts +3 -3
  546. package/src/avm/revert_code.ts +26 -25
  547. package/src/aztec-address/index.ts +4 -10
  548. package/src/block/attestation_info.ts +11 -11
  549. package/src/block/block_data.ts +42 -0
  550. package/src/block/block_hash.ts +21 -14
  551. package/src/block/block_parameter.ts +35 -2
  552. package/src/block/in_block.ts +1 -1
  553. package/src/block/index.ts +1 -0
  554. package/src/block/l2_block.ts +13 -1
  555. package/src/block/l2_block_info.ts +8 -6
  556. package/src/block/l2_block_source.ts +88 -9
  557. package/src/block/l2_block_stream/interfaces.ts +6 -2
  558. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  559. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  560. package/src/block/proposal/attestations_and_signers.ts +32 -17
  561. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  562. package/src/checkpoint/checkpoint.ts +54 -17
  563. package/src/checkpoint/checkpoint_data.ts +91 -0
  564. package/src/checkpoint/index.ts +2 -0
  565. package/src/checkpoint/published_checkpoint.ts +3 -1
  566. package/src/checkpoint/validate.ts +230 -0
  567. package/src/config/chain-config.ts +9 -4
  568. package/src/config/index.ts +2 -0
  569. package/src/config/pipelining-config.ts +31 -0
  570. package/src/config/sequencer-config.ts +51 -0
  571. package/src/contract/contract_address.ts +7 -7
  572. package/src/contract/contract_class.ts +3 -3
  573. package/src/contract/contract_class_id.ts +7 -6
  574. package/src/contract/index.ts +0 -2
  575. package/src/contract/interfaces/contract_class.ts +2 -82
  576. package/src/contract/interfaces/node-info.ts +3 -0
  577. package/src/contract/private_function.ts +5 -3
  578. package/src/epoch-helpers/index.ts +30 -0
  579. package/src/file-store/factory.ts +13 -4
  580. package/src/file-store/http.ts +29 -10
  581. package/src/file-store/index.ts +1 -0
  582. package/src/file-store/local.ts +15 -5
  583. package/src/file-store/s3.ts +12 -3
  584. package/src/gas/README.md +154 -0
  585. package/src/gas/fee_math.ts +120 -0
  586. package/src/gas/gas_fees.ts +20 -1
  587. package/src/gas/gas_settings.ts +65 -12
  588. package/src/gas/index.ts +1 -0
  589. package/src/ha-signing/config.ts +159 -0
  590. package/src/ha-signing/index.ts +29 -0
  591. package/src/ha-signing/local_config.ts +46 -0
  592. package/src/ha-signing/types.ts +126 -0
  593. package/src/hash/hash.ts +75 -10
  594. package/src/hash/map_slot.ts +2 -2
  595. package/src/interfaces/allowed_element.ts +29 -9
  596. package/src/interfaces/archiver.ts +28 -2
  597. package/src/interfaces/aztec-node-admin.ts +34 -10
  598. package/src/interfaces/aztec-node-debug.ts +40 -0
  599. package/src/interfaces/aztec-node.ts +129 -85
  600. package/src/interfaces/block-builder.ts +61 -14
  601. package/src/interfaces/block_response.ts +79 -0
  602. package/src/interfaces/chain_tips.ts +24 -0
  603. package/src/interfaces/checkpoint_parameter.ts +22 -0
  604. package/src/interfaces/checkpoint_response.ts +84 -0
  605. package/src/interfaces/client.ts +6 -0
  606. package/src/interfaces/configs.ts +40 -8
  607. package/src/interfaces/l1_publish_info.ts +40 -0
  608. package/src/interfaces/l2_logs_source.ts +4 -1
  609. package/src/interfaces/merkle_tree_operations.ts +12 -21
  610. package/src/interfaces/p2p.ts +3 -14
  611. package/src/interfaces/prover-broker.ts +22 -0
  612. package/src/interfaces/prover-client.ts +17 -5
  613. package/src/interfaces/server.ts +5 -0
  614. package/src/interfaces/slasher.ts +4 -6
  615. package/src/interfaces/validator.ts +76 -36
  616. package/src/interfaces/world_state.ts +4 -3
  617. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  618. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  619. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  620. package/src/kernel/hints/index.ts +2 -2
  621. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  622. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  623. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  624. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  625. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  626. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  627. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  628. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  629. package/src/kernel/private_validation_requests.ts +8 -8
  630. package/src/keys/derivation.ts +8 -8
  631. package/src/keys/key_types.ts +6 -2
  632. package/src/keys/public_keys.ts +2 -2
  633. package/src/keys/utils.ts +5 -5
  634. package/src/kv-store/config.ts +36 -0
  635. package/src/kv-store/index.ts +1 -0
  636. package/src/l1-contracts/index.ts +1 -1
  637. package/src/logs/debug_log_store.ts +54 -0
  638. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  639. package/src/logs/index.ts +3 -1
  640. package/src/logs/log_filter.ts +5 -0
  641. package/src/logs/log_id.ts +16 -14
  642. package/src/logs/message_context.ts +17 -7
  643. package/src/logs/pending_tagged_log.ts +1 -3
  644. package/src/logs/pre_tag.ts +5 -5
  645. package/src/logs/public_log.ts +4 -2
  646. package/src/logs/shared_secret_derivation.ts +21 -10
  647. package/src/logs/siloed_tag.ts +23 -14
  648. package/src/logs/tag.ts +9 -9
  649. package/src/logs/tagging_index_range.ts +24 -0
  650. package/src/logs/tx_scoped_l2_log.ts +16 -0
  651. package/src/messaging/l1_to_l2_message.ts +12 -9
  652. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  653. package/src/messaging/l2_to_l1_membership.ts +101 -36
  654. package/src/noir/index.ts +2 -2
  655. package/src/note/index.ts +0 -1
  656. package/src/note/note_dao.ts +1 -4
  657. package/src/p2p/attestation_utils.ts +56 -0
  658. package/src/p2p/block_proposal.ts +97 -39
  659. package/src/p2p/checkpoint_attestation.ts +26 -30
  660. package/src/p2p/checkpoint_proposal.ts +119 -84
  661. package/src/p2p/client_type.ts +0 -6
  662. package/src/p2p/consensus_payload.ts +59 -24
  663. package/src/p2p/constants.ts +3 -0
  664. package/src/p2p/gossipable.ts +4 -4
  665. package/src/p2p/index.ts +0 -1
  666. package/src/p2p/peer_error.ts +7 -0
  667. package/src/p2p/signature_utils.ts +110 -25
  668. package/src/p2p/signed_txs.ts +46 -28
  669. package/src/p2p/topic_type.ts +8 -15
  670. package/src/parity/parity_base_private_inputs.ts +10 -4
  671. package/src/parity/parity_public_inputs.ts +9 -2
  672. package/src/proofs/chonk_proof.ts +91 -5
  673. package/src/rollup/block_headers_hash.ts +11 -2
  674. package/src/rollup/checkpoint_header.ts +2 -2
  675. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  676. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  677. package/src/slashing/helpers.ts +8 -0
  678. package/src/slashing/index.ts +1 -2
  679. package/src/slashing/serialization.ts +1 -81
  680. package/src/slashing/types.ts +17 -35
  681. package/src/slashing/{tally.ts → votes.ts} +41 -2
  682. package/src/tests/factories.ts +42 -68
  683. package/src/tests/mocks.ts +103 -53
  684. package/src/timetable/index.ts +361 -0
  685. package/src/trees/nullifier_leaf.ts +4 -0
  686. package/src/trees/public_data_leaf.ts +11 -5
  687. package/src/tx/block_header.ts +10 -4
  688. package/src/tx/capsule.ts +10 -2
  689. package/src/tx/fee_provider.ts +10 -0
  690. package/src/tx/global_variable_builder.ts +2 -3
  691. package/src/tx/global_variables.ts +3 -3
  692. package/src/tx/index.ts +1 -0
  693. package/src/tx/indexed_tx_effect.ts +1 -2
  694. package/src/tx/private_execution_result.ts +5 -5
  695. package/src/tx/profiling.ts +18 -9
  696. package/src/tx/protocol_contracts.ts +2 -2
  697. package/src/tx/public_simulation_output.ts +4 -0
  698. package/src/tx/simulated_tx.ts +14 -3
  699. package/src/tx/tx.ts +22 -13
  700. package/src/tx/tx_receipt.ts +28 -16
  701. package/src/tx/tx_request.ts +2 -2
  702. package/src/tx/validator/empty_validator.ts +1 -1
  703. package/src/tx/validator/error_texts.ts +13 -1
  704. package/src/tx/validator/tx_validator.ts +1 -1
  705. package/src/types/shared.ts +0 -10
  706. package/src/update-checker/index.ts +2 -1
  707. package/src/update-checker/package_version.ts +30 -0
  708. package/src/update-checker/version_checker.ts +65 -0
  709. package/src/validators/errors.ts +9 -0
  710. package/src/validators/schemas.ts +8 -1
  711. package/src/validators/types.ts +5 -4
  712. package/src/versioning/versioning.ts +4 -1
  713. package/src/vks/verification_key.ts +5 -184
  714. package/src/world-state/genesis_data.ts +15 -0
  715. package/src/world-state/index.ts +1 -0
  716. package/src/world-state/world_state_revision.ts +9 -1
  717. package/dest/abi/mocked_keys.d.ts +0 -2
  718. package/dest/abi/mocked_keys.d.ts.map +0 -1
  719. package/dest/abi/mocked_keys.js +0 -1
  720. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  721. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  722. package/dest/contract/private_function_membership_proof.js +0 -124
  723. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  724. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  725. package/dest/contract/utility_function_membership_proof.js +0 -87
  726. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  727. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  728. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  729. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  730. package/dest/l1-contracts/slash_factory.js +0 -158
  731. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  732. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  733. package/dest/note/notes_filter.d.ts +0 -27
  734. package/dest/note/notes_filter.d.ts.map +0 -1
  735. package/dest/note/notes_filter.js +0 -11
  736. package/dest/slashing/empire.d.ts +0 -31
  737. package/dest/slashing/empire.d.ts.map +0 -1
  738. package/dest/slashing/empire.js +0 -85
  739. package/dest/slashing/tally.d.ts.map +0 -1
  740. package/dest/update-checker/update-checker.d.ts +0 -49
  741. package/dest/update-checker/update-checker.d.ts.map +0 -1
  742. package/dest/update-checker/update-checker.js +0 -130
  743. package/src/abi/mocked_keys.ts +0 -2
  744. package/src/contract/private_function_membership_proof.ts +0 -167
  745. package/src/contract/utility_function_membership_proof.ts +0 -118
  746. package/src/l1-contracts/slash_factory.ts +0 -180
  747. package/src/note/notes_filter.ts +0 -38
  748. package/src/slashing/empire.ts +0 -102
  749. package/src/update-checker/update-checker.ts +0 -166
@@ -1,44 +1,54 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
6
  import { z } from 'zod';
7
7
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
8
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, coordinationSignatureContextEquals, coordinationSignatureContextSchema, readCoordinationSignatureContext, serializeCoordinationSignatureContext } from './signature_utils.js';
8
9
  /** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
9
10
  header;
10
11
  archive;
12
+ feeAssetPriceModifier;
13
+ signatureContext;
14
+ primaryType;
11
15
  size;
12
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive){
16
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext){
13
17
  this.header = header;
14
18
  this.archive = archive;
19
+ this.feeAssetPriceModifier = feeAssetPriceModifier;
20
+ this.signatureContext = signatureContext;
21
+ this.primaryType = 'CheckpointAttestation';
15
22
  }
16
23
  static get schema() {
17
24
  return z.object({
18
25
  header: CheckpointHeader.schema,
19
- archive: schemas.Fr
20
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive));
26
+ archive: schemas.Fr,
27
+ feeAssetPriceModifier: schemas.BigInt,
28
+ signatureContext: coordinationSignatureContextSchema
29
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
21
30
  }
22
31
  static getFields(fields) {
23
32
  return [
24
33
  fields.header,
25
- fields.archive
34
+ fields.archive,
35
+ fields.feeAssetPriceModifier,
36
+ fields.signatureContext
26
37
  ];
27
38
  }
28
- getPayloadToSign(domainSeparator) {
29
- const abi = parseAbiParameters('uint8, ' + //domainSeperator
30
- '(' + 'bytes32, ' + // archive
39
+ getPayloadToSign() {
40
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
41
+ const abi = parseAbiParameters('(' + 'bytes32, ' + // archive
31
42
  '(int256), ' + // oracleInput
32
43
  'bytes32' + // headerHash
33
44
  ')');
34
45
  const archiveRoot = this.archive.toString();
35
46
  const headerHash = this.header.hash().toString();
36
47
  const encodedData = encodeAbiParameters(abi, [
37
- domainSeparator,
38
48
  [
39
49
  archiveRoot,
40
50
  [
41
- 0n
51
+ this.feeAssetPriceModifier
42
52
  ],
43
53
  headerHash
44
54
  ]
@@ -48,29 +58,35 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
48
58
  toBuffer() {
49
59
  return serializeToBuffer([
50
60
  this.header,
51
- this.archive
61
+ this.archive,
62
+ serializeSignedBigInt(this.feeAssetPriceModifier),
63
+ serializeCoordinationSignatureContext(this.signatureContext)
52
64
  ]);
53
65
  }
54
66
  equals(other) {
55
67
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
56
- return this.header.equals(otherHeader) && this.archive.equals(other.archive);
68
+ const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
69
+ return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier && coordinationSignatureContextEquals(this.signatureContext, other.signatureContext);
57
70
  }
58
71
  static fromBuffer(buf) {
59
72
  const reader = BufferReader.asReader(buf);
60
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr));
61
- return payload;
73
+ const header = reader.readObject(CheckpointHeader);
74
+ const archive = reader.readObject(Fr);
75
+ const feeAssetPriceModifier = reader.readInt256();
76
+ const signatureContext = readCoordinationSignatureContext(reader);
77
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
62
78
  }
63
79
  static fromFields(fields) {
64
- return new ConsensusPayload(fields.header, fields.archive);
80
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
65
81
  }
66
- static fromCheckpoint(checkpoint) {
67
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
82
+ static fromCheckpoint(checkpoint, signatureContext) {
83
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier, signatureContext);
68
84
  }
69
85
  static empty() {
70
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
86
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
71
87
  }
72
88
  static random() {
73
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
89
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
74
90
  }
75
91
  /**
76
92
  * Get the size of the consensus payload in bytes.
@@ -86,10 +102,13 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
86
102
  toInspect() {
87
103
  return {
88
104
  header: this.header.toInspect(),
89
- archive: this.archive.toString()
105
+ archive: this.archive.toString(),
106
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
107
+ chainId: this.signatureContext.chainId,
108
+ rollupAddress: this.signatureContext.rollupAddress.toString()
90
109
  };
91
110
  }
92
111
  toString() {
93
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
112
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
94
113
  }
95
114
  }
@@ -1,3 +1,5 @@
1
1
  export declare const MAX_TX_SIZE_KB: number;
2
2
  export declare const MAX_MESSAGE_SIZE_KB: number;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sY0FBYyxFQUFFLE1BQVksQ0FBQztBQUUxQyxlQUFPLE1BQU0sbUJBQW1CLEVBQUUsTUFBa0IsQ0FBQyJ9
3
+ /** Maximum size for L2Block response (contains TxEffects, not full Txs with proofs) */
4
+ export declare const MAX_L2_BLOCK_SIZE_KB: number;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sY0FBYyxFQUFFLE1BQVksQ0FBQztBQUUxQyxlQUFPLE1BQU0sbUJBQW1CLEVBQUUsTUFBa0IsQ0FBQztBQUVyRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLG9CQUFvQixFQUFFLE1BQWlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/p2p/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/p2p/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC;AAErD,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export const MAX_TX_SIZE_KB = 512;
2
2
  export const MAX_MESSAGE_SIZE_KB = 10 * 1024;
3
+ /** Maximum size for L2Block response (contains TxEffects, not full Txs with proofs) */ export const MAX_L2_BLOCK_SIZE_KB = 3 * 1024; // 3 MB
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import type { TopicType } from './topic_type.js';
3
3
  export declare class P2PMessage {
4
4
  readonly payload: Buffer;
@@ -22,8 +22,8 @@ export declare abstract class Gossipable {
22
22
  * A digest of the message information **used for logging only**.
23
23
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
24
24
  */
25
- p2pMessageLoggingIdentifier(): Promise<Buffer32>;
26
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
25
+ p2pMessageLoggingIdentifier(): Promise<BaseBuffer32>;
26
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
27
27
  abstract toBuffer(): Buffer;
28
28
  toMessage(): Buffer;
29
29
  /**
@@ -32,4 +32,4 @@ export declare abstract class Gossipable {
32
32
  */
33
33
  abstract getSize(): number;
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUF1QjtJQUN2QywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQU1yRDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUEyQjtJQUMzQywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQU16RDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAMrD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,YAAY,CAAC,CAMzD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
@@ -8,8 +8,7 @@ export * from './interface.js';
8
8
  export * from './signature_utils.js';
9
9
  export * from './signed_txs.js';
10
10
  export * from './topic_type.js';
11
- export * from './client_type.js';
12
11
  export * from './message_validator.js';
13
12
  export * from './peer_error.js';
14
13
  export * from './constants.js';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
package/dest/p2p/index.js CHANGED
@@ -8,7 +8,6 @@ export * from './interface.js';
8
8
  export * from './signature_utils.js';
9
9
  export * from './signed_txs.js';
10
10
  export * from './topic_type.js';
11
- export * from './client_type.js';
12
11
  export * from './message_validator.js';
13
12
  export * from './peer_error.js';
14
13
  export * from './constants.js';
@@ -15,4 +15,6 @@ export declare enum PeerErrorSeverity {
15
15
  */
16
16
  HighToleranceError = "HighToleranceError"
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9wZWVyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCxpQkFBaUIsc0JBQXNCO0lBQ3ZDOzs7T0FHRztJQUNILGlCQUFpQixzQkFBc0I7SUFDdkM7OztPQUdHO0lBQ0gsa0JBQWtCLHVCQUF1QjtDQUMxQyJ9
18
+ /** Severities ordered from mildest to harshest. */
19
+ export declare const PeerErrorSeverityByHarshness: readonly [PeerErrorSeverity.HighToleranceError, PeerErrorSeverity.MidToleranceError, PeerErrorSeverity.LowToleranceError];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9wZWVyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCxpQkFBaUIsc0JBQXNCO0lBQ3ZDOzs7T0FHRztJQUNILGlCQUFpQixzQkFBc0I7SUFDdkM7OztPQUdHO0lBQ0gsa0JBQWtCLHVCQUF1QjtDQUMxQztBQUVELG1EQUFtRDtBQUNuRCxlQUFPLE1BQU0sNEJBQTRCLDJIQUkvQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C"}
1
+ {"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C;AAED,mDAAmD;AACnD,eAAO,MAAM,4BAA4B,2HAI/B,CAAC"}
@@ -13,3 +13,8 @@ export var PeerErrorSeverity = /*#__PURE__*/ function(PeerErrorSeverity) {
13
13
  */ PeerErrorSeverity["HighToleranceError"] = "HighToleranceError";
14
14
  return PeerErrorSeverity;
15
15
  }({});
16
+ /** Severities ordered from mildest to harshest. */ export const PeerErrorSeverityByHarshness = [
17
+ "HighToleranceError",
18
+ "MidToleranceError",
19
+ "LowToleranceError"
20
+ ];
@@ -1,24 +1,33 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- export declare enum SignatureDomainSeparator {
3
- blockProposal = 0,
4
- checkpointAttestation = 1,
5
- attestationsAndSigners = 2,
6
- checkpointProposal = 3,
7
- signedTxs = 4
8
- }
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Signature } from '@aztec/foundation/eth-signature';
4
+ import { type BufferReader } from '@aztec/foundation/serialize';
5
+ import { type TypedDataDefinition } from 'viem';
6
+ import type { ZodFor } from '../schemas/index.js';
7
+ export type CoordinationSignatureType = 'BlockProposal' | 'CheckpointProposal' | 'CheckpointAttestation' | 'AttestationsAndSigners' | 'SignedTxs';
8
+ export type CoordinationSignatureContext = {
9
+ chainId: number;
10
+ rollupAddress: EthAddress;
11
+ };
12
+ export declare const EMPTY_COORDINATION_SIGNATURE_CONTEXT: CoordinationSignatureContext;
13
+ export declare const coordinationSignatureContextSchema: ZodFor<CoordinationSignatureContext>;
9
14
  export interface Signable {
10
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
15
+ readonly primaryType: CoordinationSignatureType;
16
+ readonly signatureContext: CoordinationSignatureContext;
17
+ getPayloadToSign(): Buffer;
11
18
  }
19
+ export declare function coordinationSignatureContextEquals(a: CoordinationSignatureContext, b: CoordinationSignatureContext): boolean;
20
+ export declare function serializeCoordinationSignatureContext(ctx: CoordinationSignatureContext): Buffer;
21
+ export declare function readCoordinationSignatureContext(reader: BufferReader): CoordinationSignatureContext;
12
22
  /**
13
- * Get the hashed payload for the signature of the `Signable`
14
- * @param s - The `Signable` to sign
15
- * @returns The hashed payload for the signature of the `Signable`
16
- */
17
- export declare function getHashedSignaturePayload(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
18
- /**
19
- * Get the hashed payload for the signature of the `Signable` as an Ethereum signed message EIP-712
20
- * @param s - the `Signable` to sign
21
- * @returns The hashed payload for the signature of the `Signable` as an Ethereum signed message
23
+ * Returns true if the signable carries a context matching the node's expected context.
24
+ * Use this at the P2P ingress boundary to reject foreign-chain messages cheaply before
25
+ * performing any signature recovery.
22
26
  */
23
- export declare function getHashedSignaturePayloadEthSignedMessage(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEQsb0JBQVksd0JBQXdCO0lBQ2xDLGFBQWEsSUFBSTtJQUNqQixxQkFBcUIsSUFBSTtJQUN6QixzQkFBc0IsSUFBSTtJQUMxQixrQkFBa0IsSUFBSTtJQUN0QixTQUFTLElBQUk7Q0FDZDtBQUVELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBQUM7Q0FDckU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixHQUFHLFFBQVEsQ0FFMUc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUN2RCxDQUFDLEVBQUUsUUFBUSxFQUNYLGVBQWUsRUFBRSx3QkFBd0IsR0FDeEMsUUFBUSxDQUdWIn0=
27
+ export declare function hasValidSignatureContext(signable: Signable, expected: CoordinationSignatureContext): boolean;
28
+ export declare function getCoordinationSignatureTypedDataForPayloadHash(payloadHash: Buffer32, type: CoordinationSignatureType, context: CoordinationSignatureContext): TypedDataDefinition;
29
+ export declare function getCoordinationSignatureTypedData(signable: Signable): TypedDataDefinition;
30
+ export declare function getHashedSignaturePayloadTypedData(signable: Signable): Buffer32;
31
+ export declare function recoverCoordinationSigner(signable: Signable, signature: Signature): EthAddress | undefined;
32
+ export declare function getHashedSignaturePayload(s: Signable): Buffer32;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxNQUFNLHlCQUF5QixHQUNqQyxlQUFlLEdBQ2Ysb0JBQW9CLEdBQ3BCLHVCQUF1QixHQUN2Qix3QkFBd0IsR0FDeEIsV0FBVyxDQUFDO0FBRWhCLE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxVQUFVLENBQUM7Q0FDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQ0FBb0MsRUFBRSw0QkFHbEQsQ0FBQztBQUVGLGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsNEJBQTRCLENBR2xGLENBQUM7QUFFSCxNQUFNLFdBQVcsUUFBUTtJQUN2QixRQUFRLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ2hELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQztJQUN4RCxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDNUI7QUFFRCx3QkFBZ0Isa0NBQWtDLENBQ2hELENBQUMsRUFBRSw0QkFBNEIsRUFDL0IsQ0FBQyxFQUFFLDRCQUE0QixHQUM5QixPQUFPLENBRVQ7QUFFRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDRCQUE0QixHQUFHLE1BQU0sQ0FFL0Y7QUFFRCx3QkFBZ0IsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLFlBQVksR0FBRyw0QkFBNEIsQ0FJbkc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixHQUFHLE9BQU8sQ0FFNUc7QUFxQkQsd0JBQWdCLCtDQUErQyxDQUM3RCxXQUFXLEVBQUUsUUFBUSxFQUNyQixJQUFJLEVBQUUseUJBQXlCLEVBQy9CLE9BQU8sRUFBRSw0QkFBNEIsR0FDcEMsbUJBQW1CLENBY3JCO0FBRUQsd0JBQWdCLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsbUJBQW1CLENBR3pGO0FBRUQsd0JBQWdCLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUUvRTtBQUVELHdCQUFnQix5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FHMUc7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRS9EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD,oBAAY,wBAAwB;IAClC,aAAa,IAAI;IACjB,qBAAqB,IAAI;IACzB,sBAAsB,IAAI;IAC1B,kBAAkB,IAAI;IACtB,SAAS,IAAI;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,wBAAwB,GAAG,QAAQ,CAE1G;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,CAAC,EAAE,QAAQ,EACX,eAAe,EAAE,wBAAwB,GACxC,QAAQ,CAGV"}
1
+ {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,MAAM,CAAC;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,WAAW,CAAC;AAEhB,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,4BAGlD,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,4BAA4B,CAGlF,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAED,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,4BAA4B,EAC/B,CAAC,EAAE,4BAA4B,GAC9B,OAAO,CAET;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,4BAA4B,GAAG,MAAM,CAE/F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,4BAA4B,CAInG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAE5G;AAqBD,wBAAgB,+CAA+C,CAC7D,WAAW,EAAE,QAAQ,EACrB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,4BAA4B,GACpC,mBAAmB,CAcrB;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CAGzF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAG1G;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE/D"}
@@ -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
  }