@aztec/stdlib 0.0.1-commit.9ef841308 → 0.0.1-commit.a5db02d

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 (983) hide show
  1. package/dest/abi/abi.d.ts +121 -1197
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +31 -16
  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 +6 -2
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +13 -1
  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/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +32 -6
  15. package/dest/abi/event_selector.d.ts +4 -7
  16. package/dest/abi/event_selector.d.ts.map +1 -1
  17. package/dest/abi/function_call.d.ts +7 -25
  18. package/dest/abi/function_call.d.ts.map +1 -1
  19. package/dest/abi/function_selector.d.ts +3 -6
  20. package/dest/abi/function_selector.d.ts.map +1 -1
  21. package/dest/abi/function_selector.js +1 -3
  22. package/dest/abi/note_selector.d.ts +4 -7
  23. package/dest/abi/note_selector.d.ts.map +1 -1
  24. package/dest/abi/note_selector.js +1 -3
  25. package/dest/abi/selector.d.ts +2 -2
  26. package/dest/abi/selector.d.ts.map +1 -1
  27. package/dest/abi/selector.js +1 -1
  28. package/dest/abi/utils.d.ts +1 -1
  29. package/dest/abi/utils.d.ts.map +1 -1
  30. package/dest/abi/utils.js +1 -1
  31. package/dest/auth_witness/auth_witness.d.ts +2 -2
  32. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  33. package/dest/avm/avm.d.ts +1756 -10463
  34. package/dest/avm/avm.d.ts.map +1 -1
  35. package/dest/avm/avm.js +7 -4
  36. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  37. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  38. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  39. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  40. package/dest/avm/avm_proving_request.d.ts +653 -5446
  41. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  42. package/dest/avm/message_pack.js +12 -3
  43. package/dest/avm/public_data_write.d.ts +6 -12
  44. package/dest/avm/public_data_write.d.ts.map +1 -1
  45. package/dest/avm/revert_code.d.ts +5 -21
  46. package/dest/avm/revert_code.d.ts.map +1 -1
  47. package/dest/avm/revert_code.js +12 -30
  48. package/dest/aztec-address/index.d.ts +42 -12
  49. package/dest/aztec-address/index.d.ts.map +1 -1
  50. package/dest/aztec-address/index.js +40 -13
  51. package/dest/block/attestation_info.d.ts +3 -2
  52. package/dest/block/attestation_info.d.ts.map +1 -1
  53. package/dest/block/attestation_info.js +10 -5
  54. package/dest/block/block_data.d.ts +13 -38
  55. package/dest/block/block_data.d.ts.map +1 -1
  56. package/dest/block/block_data.js +2 -2
  57. package/dest/block/block_hash.d.ts +11 -10
  58. package/dest/block/block_hash.d.ts.map +1 -1
  59. package/dest/block/block_hash.js +10 -9
  60. package/dest/block/block_parameter.d.ts +37 -4
  61. package/dest/block/block_parameter.d.ts.map +1 -1
  62. package/dest/block/block_parameter.js +53 -2
  63. package/dest/block/in_block.d.ts +5 -24
  64. package/dest/block/in_block.d.ts.map +1 -1
  65. package/dest/block/index.d.ts +1 -2
  66. package/dest/block/index.d.ts.map +1 -1
  67. package/dest/block/index.js +0 -1
  68. package/dest/block/l2_block.d.ts +13 -41
  69. package/dest/block/l2_block.d.ts.map +1 -1
  70. package/dest/block/l2_block_info.d.ts +10 -29
  71. package/dest/block/l2_block_info.d.ts.map +1 -1
  72. package/dest/block/l2_block_info.js +6 -5
  73. package/dest/block/l2_block_source.d.ts +228 -354
  74. package/dest/block/l2_block_source.d.ts.map +1 -1
  75. package/dest/block/l2_block_source.js +81 -1
  76. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
  77. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
  78. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
  79. package/dest/block/l2_block_stream/index.d.ts +2 -1
  80. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  81. package/dest/block/l2_block_stream/index.js +1 -0
  82. package/dest/block/l2_block_stream/interfaces.d.ts +83 -10
  83. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  84. package/dest/block/l2_block_stream/interfaces.js +25 -1
  85. package/dest/block/l2_block_stream/l2_block_stream.d.ts +23 -15
  86. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.js +159 -135
  88. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  89. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
  91. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +20 -18
  92. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  93. package/dest/block/l2_block_stream/l2_tips_store_base.js +84 -40
  94. package/dest/block/proposal/attestations_and_signers.d.ts +37 -30
  95. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  96. package/dest/block/proposal/attestations_and_signers.js +73 -25
  97. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  98. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  99. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  100. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.js +296 -36
  102. package/dest/block/validate_block_result.d.ts +16 -1
  103. package/dest/block/validate_block_result.d.ts.map +1 -1
  104. package/dest/block/validate_block_result.js +18 -3
  105. package/dest/checkpoint/checkpoint.d.ts +30 -96
  106. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  107. package/dest/checkpoint/checkpoint.js +11 -3
  108. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  109. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  110. package/dest/checkpoint/checkpoint_data.js +12 -0
  111. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  112. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  115. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  116. package/dest/checkpoint/digest.d.ts +18 -0
  117. package/dest/checkpoint/digest.d.ts.map +1 -0
  118. package/dest/checkpoint/digest.js +12 -0
  119. package/dest/checkpoint/index.d.ts +5 -1
  120. package/dest/checkpoint/index.d.ts.map +1 -1
  121. package/dest/checkpoint/index.js +4 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  124. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  125. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  126. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  127. package/dest/checkpoint/simulation_overrides.d.ts +61 -0
  128. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
  129. package/dest/checkpoint/simulation_overrides.js +98 -0
  130. package/dest/checkpoint/validate.d.ts +11 -3
  131. package/dest/checkpoint/validate.d.ts.map +1 -1
  132. package/dest/checkpoint/validate.js +9 -6
  133. package/dest/config/chain-config.d.ts +4 -9
  134. package/dest/config/chain-config.d.ts.map +1 -1
  135. package/dest/config/chain-config.js +13 -12
  136. package/dest/config/index.d.ts +2 -2
  137. package/dest/config/index.d.ts.map +1 -1
  138. package/dest/config/index.js +1 -1
  139. package/dest/config/network-consensus-config.d.ts +72 -0
  140. package/dest/config/network-consensus-config.d.ts.map +1 -0
  141. package/dest/config/network-consensus-config.js +223 -0
  142. package/dest/config/sequencer-config.d.ts +7 -3
  143. package/dest/config/sequencer-config.d.ts.map +1 -1
  144. package/dest/config/sequencer-config.js +38 -5
  145. package/dest/contract/complete_address.d.ts +3 -2
  146. package/dest/contract/complete_address.d.ts.map +1 -1
  147. package/dest/contract/complete_address.js +6 -2
  148. package/dest/contract/contract_address.d.ts +9 -8
  149. package/dest/contract/contract_address.d.ts.map +1 -1
  150. package/dest/contract/contract_address.js +5 -4
  151. package/dest/contract/contract_deployment_data.d.ts +15 -61
  152. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  153. package/dest/contract/contract_instance.d.ts +19 -3
  154. package/dest/contract/contract_instance.d.ts.map +1 -1
  155. package/dest/contract/contract_instance.js +55 -3
  156. package/dest/contract/interfaces/contract_class.d.ts +15 -86
  157. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  158. package/dest/contract/interfaces/contract_data_source.d.ts +3 -5
  159. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  160. package/dest/contract/interfaces/contract_instance.d.ts +111 -104
  161. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  162. package/dest/contract/interfaces/contract_instance.js +11 -4
  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/partial_address.d.ts +9 -3
  171. package/dest/contract/partial_address.d.ts.map +1 -1
  172. package/dest/contract/partial_address.js +8 -2
  173. package/dest/contract/private_function.d.ts +1 -1
  174. package/dest/contract/private_function.d.ts.map +1 -1
  175. package/dest/contract/private_function.js +2 -4
  176. package/dest/database-version/database_version.d.ts +5 -11
  177. package/dest/database-version/database_version.d.ts.map +1 -1
  178. package/dest/database-version/version_manager.d.ts +22 -4
  179. package/dest/database-version/version_manager.d.ts.map +1 -1
  180. package/dest/database-version/version_manager.js +87 -6
  181. package/dest/deserialization/index.d.ts +35 -3
  182. package/dest/deserialization/index.d.ts.map +1 -1
  183. package/dest/deserialization/index.js +32 -1
  184. package/dest/epoch-helpers/index.d.ts +6 -22
  185. package/dest/epoch-helpers/index.d.ts.map +1 -1
  186. package/dest/epoch-helpers/index.js +3 -0
  187. package/dest/file-store/factory.d.ts +1 -1
  188. package/dest/file-store/factory.d.ts.map +1 -1
  189. package/dest/file-store/factory.js +7 -0
  190. package/dest/file-store/index.d.ts +2 -1
  191. package/dest/file-store/index.d.ts.map +1 -1
  192. package/dest/file-store/index.js +1 -0
  193. package/dest/file-store/memory.d.ts +24 -0
  194. package/dest/file-store/memory.d.ts.map +1 -0
  195. package/dest/file-store/memory.js +80 -0
  196. package/dest/gas/fee_math.d.ts +49 -0
  197. package/dest/gas/fee_math.d.ts.map +1 -0
  198. package/dest/gas/fee_math.js +80 -0
  199. package/dest/gas/gas.d.ts +9 -14
  200. package/dest/gas/gas.d.ts.map +1 -1
  201. package/dest/gas/gas.js +6 -3
  202. package/dest/gas/gas_fees.d.ts +13 -14
  203. package/dest/gas/gas_fees.d.ts.map +1 -1
  204. package/dest/gas/gas_fees.js +17 -4
  205. package/dest/gas/gas_settings.d.ts +60 -86
  206. package/dest/gas/gas_settings.d.ts.map +1 -1
  207. package/dest/gas/gas_settings.js +49 -9
  208. package/dest/gas/index.d.ts +3 -1
  209. package/dest/gas/index.d.ts.map +1 -1
  210. package/dest/gas/index.js +2 -0
  211. package/dest/gas/tx_gas_limits.d.ts +72 -0
  212. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  213. package/dest/gas/tx_gas_limits.js +85 -0
  214. package/dest/ha-signing/config.d.ts +29 -79
  215. package/dest/ha-signing/config.d.ts.map +1 -1
  216. package/dest/ha-signing/config.js +18 -21
  217. package/dest/ha-signing/index.d.ts +2 -2
  218. package/dest/ha-signing/index.d.ts.map +1 -1
  219. package/dest/ha-signing/index.js +1 -1
  220. package/dest/ha-signing/local_config.d.ts +12 -35
  221. package/dest/ha-signing/local_config.d.ts.map +1 -1
  222. package/dest/ha-signing/local_config.js +9 -3
  223. package/dest/ha-signing/types.d.ts +37 -32
  224. package/dest/ha-signing/types.d.ts.map +1 -1
  225. package/dest/ha-signing/types.js +13 -6
  226. package/dest/hash/hash.d.ts +16 -2
  227. package/dest/hash/hash.d.ts.map +1 -1
  228. package/dest/hash/hash.js +34 -9
  229. package/dest/interfaces/allowed_element.d.ts +4 -28
  230. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  231. package/dest/interfaces/api_limit.d.ts +1 -1
  232. package/dest/interfaces/api_limit.js +1 -1
  233. package/dest/interfaces/archiver.d.ts +27 -32
  234. package/dest/interfaces/archiver.d.ts.map +1 -1
  235. package/dest/interfaces/archiver.js +216 -70
  236. package/dest/interfaces/aztec-node-admin.d.ts +74 -302
  237. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  238. package/dest/interfaces/aztec-node-admin.js +60 -17
  239. package/dest/interfaces/aztec-node-debug.d.ts +59 -0
  240. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  241. package/dest/interfaces/aztec-node-debug.js +49 -0
  242. package/dest/interfaces/aztec-node.d.ts +160 -116
  243. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  244. package/dest/interfaces/aztec-node.js +350 -74
  245. package/dest/interfaces/block-builder.d.ts +5 -1
  246. package/dest/interfaces/block-builder.d.ts.map +1 -1
  247. package/dest/interfaces/block_response.d.ts +90 -0
  248. package/dest/interfaces/block_response.d.ts.map +1 -0
  249. package/dest/interfaces/block_response.js +30 -0
  250. package/dest/interfaces/chain_tips.d.ts +11 -0
  251. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  252. package/dest/interfaces/chain_tips.js +6 -0
  253. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  254. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  255. package/dest/interfaces/checkpoint_parameter.js +18 -0
  256. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  257. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  258. package/dest/interfaces/checkpoint_response.js +26 -0
  259. package/dest/interfaces/client.d.ts +9 -2
  260. package/dest/interfaces/client.d.ts.map +1 -1
  261. package/dest/interfaces/client.js +7 -1
  262. package/dest/interfaces/configs.d.ts +66 -134
  263. package/dest/interfaces/configs.d.ts.map +1 -1
  264. package/dest/interfaces/configs.js +14 -2
  265. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  266. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  267. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  268. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  269. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  270. package/dest/interfaces/l1_publish_info.js +26 -0
  271. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  272. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  273. package/dest/interfaces/l2_logs_source.js +5 -0
  274. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  275. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  276. package/dest/interfaces/p2p-bootstrap.js +8 -2
  277. package/dest/interfaces/p2p.d.ts +46 -7
  278. package/dest/interfaces/p2p.d.ts.map +1 -1
  279. package/dest/interfaces/p2p.js +41 -6
  280. package/dest/interfaces/private_kernel_prover.d.ts +69 -11
  281. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  282. package/dest/interfaces/prover-agent.d.ts +5 -23
  283. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  284. package/dest/interfaces/prover-agent.js +4 -1
  285. package/dest/interfaces/prover-client.d.ts +7 -29
  286. package/dest/interfaces/prover-client.d.ts.map +1 -1
  287. package/dest/interfaces/prover-client.js +0 -3
  288. package/dest/interfaces/prover-node.d.ts +12 -8
  289. package/dest/interfaces/prover-node.d.ts.map +1 -1
  290. package/dest/interfaces/prover-node.js +37 -16
  291. package/dest/interfaces/proving-job-source.js +24 -4
  292. package/dest/interfaces/proving-job.d.ts +740 -5778
  293. package/dest/interfaces/proving-job.d.ts.map +1 -1
  294. package/dest/interfaces/proving-job.js +14 -5
  295. package/dest/interfaces/public_storage_override.d.ts +22 -0
  296. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  297. package/dest/interfaces/public_storage_override.js +7 -0
  298. package/dest/interfaces/server.d.ts +6 -2
  299. package/dest/interfaces/server.d.ts.map +1 -1
  300. package/dest/interfaces/server.js +5 -1
  301. package/dest/interfaces/server_circuit_prover.d.ts +3 -3
  302. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  303. package/dest/interfaces/slasher.d.ts +25 -65
  304. package/dest/interfaces/slasher.d.ts.map +1 -1
  305. package/dest/interfaces/slasher.js +8 -4
  306. package/dest/interfaces/tx_provider.d.ts +6 -1
  307. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  308. package/dest/interfaces/validator.d.ts +58 -239
  309. package/dest/interfaces/validator.d.ts.map +1 -1
  310. package/dest/interfaces/validator.js +8 -1
  311. package/dest/interfaces/world_state.d.ts +15 -2
  312. package/dest/interfaces/world_state.d.ts.map +1 -1
  313. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
  314. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  315. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -74
  316. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  317. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  318. package/dest/kernel/hints/key_validation_request.js +20 -18
  319. package/dest/kernel/hints/read_request.js +1 -1
  320. package/dest/kernel/index.d.ts +6 -2
  321. package/dest/kernel/index.d.ts.map +1 -1
  322. package/dest/kernel/index.js +5 -1
  323. package/dest/kernel/log_hash.d.ts +6 -2
  324. package/dest/kernel/log_hash.d.ts.map +1 -1
  325. package/dest/kernel/log_hash.js +23 -11
  326. package/dest/kernel/note_hash.js +1 -1
  327. package/dest/kernel/nullifier.js +1 -1
  328. package/dest/kernel/private_circuit_public_inputs.d.ts +14 -4
  329. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  330. package/dest/kernel/private_circuit_public_inputs.js +14 -7
  331. package/dest/kernel/private_context_inputs.d.ts +4 -3
  332. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  333. package/dest/kernel/private_context_inputs.js +7 -3
  334. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +8 -2
  335. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  336. package/dest/kernel/private_kernel_circuit_public_inputs.js +7 -0
  337. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +22 -0
  338. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  339. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +33 -0
  340. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +23 -0
  341. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  342. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +35 -0
  343. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -9
  344. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  345. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +2 -6
  346. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  347. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  348. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  349. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  350. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  351. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  352. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  353. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  354. package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
  355. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  356. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
  357. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
  358. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
  359. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  360. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  361. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  362. package/dest/kernel/private_log_data.d.ts +1 -1
  363. package/dest/kernel/private_log_data.d.ts.map +1 -1
  364. package/dest/kernel/private_log_data.js +1 -1
  365. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  366. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  367. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  368. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  369. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  370. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  371. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  372. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  373. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  374. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  375. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  376. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  377. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  378. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  379. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  380. package/dest/kernel/public_call_request.d.ts +15 -30
  381. package/dest/kernel/public_call_request.d.ts.map +1 -1
  382. package/dest/kernel/public_call_request.js +16 -7
  383. package/dest/keys/derivation.d.ts +45 -6
  384. package/dest/keys/derivation.d.ts.map +1 -1
  385. package/dest/keys/derivation.js +55 -22
  386. package/dest/keys/public_key.d.ts +22 -3
  387. package/dest/keys/public_key.d.ts.map +1 -1
  388. package/dest/keys/public_key.js +20 -1
  389. package/dest/keys/public_keys.d.ts +55 -82
  390. package/dest/keys/public_keys.d.ts.map +1 -1
  391. package/dest/keys/public_keys.js +102 -74
  392. package/dest/kv-store/config.d.ts +3 -6
  393. package/dest/kv-store/config.d.ts.map +1 -1
  394. package/dest/kv-store/config.js +2 -7
  395. package/dest/l1-contracts/index.d.ts +2 -2
  396. package/dest/l1-contracts/index.d.ts.map +1 -1
  397. package/dest/l1-contracts/index.js +1 -1
  398. package/dest/logs/app_tagging_secret.d.ts +69 -0
  399. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  400. package/dest/logs/app_tagging_secret.js +116 -0
  401. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  402. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  403. package/dest/logs/app_tagging_secret_kind.js +17 -0
  404. package/dest/logs/contract_class_log.d.ts +16 -35
  405. package/dest/logs/contract_class_log.d.ts.map +1 -1
  406. package/dest/logs/contract_class_log.js +11 -13
  407. package/dest/logs/index.d.ts +7 -9
  408. package/dest/logs/index.d.ts.map +1 -1
  409. package/dest/logs/index.js +6 -8
  410. package/dest/logs/log_cursor.d.ts +51 -0
  411. package/dest/logs/log_cursor.d.ts.map +1 -0
  412. package/dest/logs/log_cursor.js +82 -0
  413. package/dest/logs/log_result.d.ts +54 -0
  414. package/dest/logs/log_result.d.ts.map +1 -0
  415. package/dest/logs/log_result.js +56 -0
  416. package/dest/logs/logs_query.d.ts +82 -0
  417. package/dest/logs/logs_query.d.ts.map +1 -0
  418. package/dest/logs/logs_query.js +50 -0
  419. package/dest/logs/pre_tag.d.ts +11 -24
  420. package/dest/logs/pre_tag.d.ts.map +1 -1
  421. package/dest/logs/pre_tag.js +2 -2
  422. package/dest/logs/private_log.d.ts +7 -12
  423. package/dest/logs/private_log.d.ts.map +1 -1
  424. package/dest/logs/private_log.js +6 -3
  425. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  426. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  427. package/dest/logs/query_all_logs_by_tags.js +64 -0
  428. package/dest/logs/shared_secret_derivation.d.ts +29 -6
  429. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  430. package/dest/logs/shared_secret_derivation.js +44 -11
  431. package/dest/logs/siloed_tag.d.ts +5 -7
  432. package/dest/logs/siloed_tag.d.ts.map +1 -1
  433. package/dest/logs/siloed_tag.js +7 -1
  434. package/dest/logs/tag.d.ts +5 -6
  435. package/dest/logs/tag.d.ts.map +1 -1
  436. package/dest/logs/tag.js +4 -0
  437. package/dest/logs/tagging_index_range.d.ts +13 -31
  438. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  439. package/dest/logs/tagging_index_range.js +2 -2
  440. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  441. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  442. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  443. package/dest/messaging/index.d.ts +2 -1
  444. package/dest/messaging/index.d.ts.map +1 -1
  445. package/dest/messaging/index.js +1 -0
  446. package/dest/messaging/l1_to_l2_message.d.ts +23 -2
  447. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  448. package/dest/messaging/l1_to_l2_message.js +36 -11
  449. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  450. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  451. package/dest/messaging/l2_to_l1_membership.js +72 -12
  452. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  453. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  454. package/dest/messaging/l2_to_l1_message.js +21 -12
  455. package/dest/noir/index.d.ts +3 -1
  456. package/dest/noir/index.d.ts.map +1 -1
  457. package/dest/note/note.d.ts +2 -2
  458. package/dest/note/note.d.ts.map +1 -1
  459. package/dest/p2p/attestation_utils.d.ts +1 -1
  460. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  461. package/dest/p2p/attestation_utils.js +8 -1
  462. package/dest/p2p/block_proposal.d.ts +31 -14
  463. package/dest/p2p/block_proposal.d.ts.map +1 -1
  464. package/dest/p2p/block_proposal.js +57 -39
  465. package/dest/p2p/checkpoint_attestation.d.ts +24 -9
  466. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  467. package/dest/p2p/checkpoint_attestation.js +33 -24
  468. package/dest/p2p/checkpoint_proposal.d.ts +36 -16
  469. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  470. package/dest/p2p/checkpoint_proposal.js +59 -51
  471. package/dest/p2p/consensus_payload.d.ts +27 -20
  472. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  473. package/dest/p2p/consensus_payload.js +38 -19
  474. package/dest/p2p/gossipable.d.ts +4 -4
  475. package/dest/p2p/gossipable.d.ts.map +1 -1
  476. package/dest/p2p/signature_utils.d.ts +35 -17
  477. package/dest/p2p/signature_utils.d.ts.map +1 -1
  478. package/dest/p2p/signature_utils.js +125 -20
  479. package/dest/p2p/signed_txs.d.ts +15 -13
  480. package/dest/p2p/signed_txs.d.ts.map +1 -1
  481. package/dest/p2p/signed_txs.js +26 -24
  482. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  483. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  484. package/dest/parity/parity_base_private_inputs.js +7 -5
  485. package/dest/parity/parity_public_inputs.d.ts +8 -4
  486. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  487. package/dest/parity/parity_public_inputs.js +6 -3
  488. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  489. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  490. package/dest/proofs/chonk_proof.d.ts +17 -11
  491. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  492. package/dest/proofs/chonk_proof.js +44 -22
  493. package/dest/proofs/recursive_proof.d.ts +2 -2
  494. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  495. package/dest/rollup/avm_proof_data.d.ts +3 -3
  496. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  497. package/dest/rollup/block_headers_hash.d.ts +1 -1
  498. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  499. package/dest/rollup/block_headers_hash.js +8 -2
  500. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  501. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  502. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  503. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  504. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  505. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  506. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  507. package/dest/rollup/checkpoint_header.d.ts +8 -3
  508. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  509. package/dest/rollup/checkpoint_header.js +20 -10
  510. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  511. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  512. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  513. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  514. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  515. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  516. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  517. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  518. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  519. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  520. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  521. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  522. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  523. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  524. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  525. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  526. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  527. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  528. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  529. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  530. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  531. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  532. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  533. package/dest/schemas/schemas.d.ts +32 -78
  534. package/dest/schemas/schemas.d.ts.map +1 -1
  535. package/dest/schemas/schemas.js +2 -2
  536. package/dest/slashing/helpers.d.ts +2 -2
  537. package/dest/slashing/helpers.d.ts.map +1 -1
  538. package/dest/slashing/helpers.js +10 -7
  539. package/dest/slashing/index.d.ts +2 -3
  540. package/dest/slashing/index.d.ts.map +1 -1
  541. package/dest/slashing/index.js +1 -2
  542. package/dest/slashing/serialization.d.ts +2 -6
  543. package/dest/slashing/serialization.d.ts.map +1 -1
  544. package/dest/slashing/serialization.js +0 -60
  545. package/dest/slashing/types.d.ts +18 -112
  546. package/dest/slashing/types.d.ts.map +1 -1
  547. package/dest/slashing/types.js +16 -24
  548. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  549. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  550. package/dest/slashing/{tally.js → votes.js} +1 -1
  551. package/dest/snapshots/types.d.ts +15 -78
  552. package/dest/snapshots/types.d.ts.map +1 -1
  553. package/dest/stats/stats.d.ts +2 -2
  554. package/dest/stats/stats.d.ts.map +1 -1
  555. package/dest/tests/factories.d.ts +24 -29
  556. package/dest/tests/factories.d.ts.map +1 -1
  557. package/dest/tests/factories.js +81 -59
  558. package/dest/tests/mocks.d.ts +8 -5
  559. package/dest/tests/mocks.d.ts.map +1 -1
  560. package/dest/tests/mocks.js +45 -56
  561. package/dest/timetable/budgets.d.ts +57 -0
  562. package/dest/timetable/budgets.d.ts.map +1 -0
  563. package/dest/timetable/budgets.js +56 -0
  564. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  565. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  566. package/dest/timetable/build_proposer_timetable.js +17 -0
  567. package/dest/timetable/consensus_timetable.d.ts +70 -0
  568. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  569. package/dest/timetable/consensus_timetable.js +89 -0
  570. package/dest/timetable/index.d.ts +5 -37
  571. package/dest/timetable/index.d.ts.map +1 -1
  572. package/dest/timetable/index.js +4 -39
  573. package/dest/timetable/proposer_timetable.d.ts +106 -0
  574. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  575. package/dest/timetable/proposer_timetable.js +132 -0
  576. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  577. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  578. package/dest/trees/append_only_tree_snapshot.js +6 -3
  579. package/dest/trees/nullifier_leaf.d.ts +19 -42
  580. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  581. package/dest/trees/nullifier_leaf.js +3 -0
  582. package/dest/trees/nullifier_membership_witness.d.ts +17 -63
  583. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  584. package/dest/trees/nullifier_membership_witness.js +0 -21
  585. package/dest/trees/public_data_leaf.d.ts +21 -53
  586. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  587. package/dest/trees/public_data_witness.d.ts +19 -71
  588. package/dest/trees/public_data_witness.d.ts.map +1 -1
  589. package/dest/trees/public_data_witness.js +0 -27
  590. package/dest/tx/block_header.d.ts +5 -4
  591. package/dest/tx/block_header.d.ts.map +1 -1
  592. package/dest/tx/block_header.js +7 -4
  593. package/dest/tx/call_context.d.ts +4 -14
  594. package/dest/tx/call_context.d.ts.map +1 -1
  595. package/dest/tx/capsule.d.ts +2 -2
  596. package/dest/tx/capsule.d.ts.map +1 -1
  597. package/dest/tx/execution_payload.d.ts +1 -1
  598. package/dest/tx/execution_payload.d.ts.map +1 -1
  599. package/dest/tx/execution_payload.js +1 -1
  600. package/dest/tx/fee_provider.d.ts +10 -0
  601. package/dest/tx/fee_provider.d.ts.map +1 -0
  602. package/dest/tx/fee_provider.js +1 -0
  603. package/dest/tx/function_data.d.ts +4 -10
  604. package/dest/tx/function_data.d.ts.map +1 -1
  605. package/dest/tx/global_variable_builder.d.ts +4 -15
  606. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  607. package/dest/tx/global_variables.d.ts +16 -49
  608. package/dest/tx/global_variables.d.ts.map +1 -1
  609. package/dest/tx/global_variables.js +10 -14
  610. package/dest/tx/hashed_values.d.ts +4 -3
  611. package/dest/tx/hashed_values.d.ts.map +1 -1
  612. package/dest/tx/hashed_values.js +6 -3
  613. package/dest/tx/in_tx.d.ts +5 -17
  614. package/dest/tx/in_tx.d.ts.map +1 -1
  615. package/dest/tx/index.d.ts +2 -1
  616. package/dest/tx/index.d.ts.map +1 -1
  617. package/dest/tx/index.js +1 -0
  618. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  619. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  620. package/dest/tx/indexed_tx_effect.js +9 -6
  621. package/dest/tx/partial_state_reference.d.ts +22 -65
  622. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  623. package/dest/tx/partial_state_reference.js +6 -3
  624. package/dest/tx/private_execution_result.d.ts +6 -16
  625. package/dest/tx/private_execution_result.d.ts.map +1 -1
  626. package/dest/tx/private_tx_constant_data.d.ts +18 -2
  627. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  628. package/dest/tx/private_tx_constant_data.js +13 -4
  629. package/dest/tx/profiling.d.ts +54 -352
  630. package/dest/tx/profiling.d.ts.map +1 -1
  631. package/dest/tx/profiling.js +4 -4
  632. package/dest/tx/protocol_contracts.d.ts +5 -9
  633. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  634. package/dest/tx/proven_tx.d.ts +30 -74
  635. package/dest/tx/proven_tx.d.ts.map +1 -1
  636. package/dest/tx/proven_tx.js +6 -0
  637. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  638. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  639. package/dest/tx/public_call_request_with_calldata.js +6 -3
  640. package/dest/tx/simulated_tx.d.ts +73 -1256
  641. package/dest/tx/simulated_tx.d.ts.map +1 -1
  642. package/dest/tx/simulated_tx.js +13 -11
  643. package/dest/tx/state_reference.d.ts +30 -117
  644. package/dest/tx/state_reference.d.ts.map +1 -1
  645. package/dest/tx/state_reference.js +6 -4
  646. package/dest/tx/tree_snapshots.d.ts +27 -84
  647. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  648. package/dest/tx/tree_snapshots.js +6 -4
  649. package/dest/tx/tx.d.ts +22 -13
  650. package/dest/tx/tx.d.ts.map +1 -1
  651. package/dest/tx/tx.js +44 -22
  652. package/dest/tx/tx_constant_data.d.ts +4 -3
  653. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  654. package/dest/tx/tx_constant_data.js +6 -3
  655. package/dest/tx/tx_context.d.ts +32 -131
  656. package/dest/tx/tx_context.d.ts.map +1 -1
  657. package/dest/tx/tx_context.js +6 -6
  658. package/dest/tx/tx_hash.d.ts +6 -4
  659. package/dest/tx/tx_hash.d.ts.map +1 -1
  660. package/dest/tx/tx_hash.js +13 -5
  661. package/dest/tx/tx_receipt.d.ts +144 -63
  662. package/dest/tx/tx_receipt.d.ts.map +1 -1
  663. package/dest/tx/tx_receipt.js +143 -60
  664. package/dest/tx/validator/error_texts.d.ts +2 -2
  665. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  666. package/dest/tx/validator/error_texts.js +1 -1
  667. package/dest/tx/validator/tx_validator.d.ts +5 -27
  668. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  669. package/dest/tx/validator/tx_validator.js +0 -4
  670. package/dest/types/shared.d.ts +4 -12
  671. package/dest/types/shared.d.ts.map +1 -1
  672. package/dest/types/shared.js +6 -12
  673. package/dest/update-checker/dev_version.d.ts +3 -0
  674. package/dest/update-checker/dev_version.d.ts.map +1 -0
  675. package/dest/update-checker/dev_version.js +1 -0
  676. package/dest/update-checker/index.d.ts +2 -1
  677. package/dest/update-checker/index.d.ts.map +1 -1
  678. package/dest/update-checker/index.js +1 -0
  679. package/dest/update-checker/package_version.d.ts +6 -3
  680. package/dest/update-checker/package_version.d.ts.map +1 -1
  681. package/dest/update-checker/package_version.js +8 -19
  682. package/dest/validators/schemas.d.ts +147 -614
  683. package/dest/validators/schemas.d.ts.map +1 -1
  684. package/dest/validators/schemas.js +6 -4
  685. package/dest/validators/types.d.ts +20 -3
  686. package/dest/validators/types.d.ts.map +1 -1
  687. package/dest/versioning/versioning.js +1 -1
  688. package/dest/vks/verification_key.d.ts +4 -139
  689. package/dest/vks/verification_key.d.ts.map +1 -1
  690. package/dest/vks/verification_key.js +5 -126
  691. package/dest/world-state/genesis_data.d.ts +21 -0
  692. package/dest/world-state/genesis_data.d.ts.map +1 -0
  693. package/dest/world-state/genesis_data.js +8 -0
  694. package/dest/world-state/index.d.ts +2 -1
  695. package/dest/world-state/index.d.ts.map +1 -1
  696. package/dest/world-state/index.js +1 -0
  697. package/dest/world-state/world_state_revision.d.ts +15 -26
  698. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  699. package/dest/world-state/world_state_revision.js +7 -1
  700. package/package.json +12 -11
  701. package/src/abi/abi.ts +53 -19
  702. package/src/abi/authorization_selector.ts +2 -8
  703. package/src/abi/buffer.ts +13 -1
  704. package/src/abi/contract_artifact.ts +30 -6
  705. package/src/abi/encoder.ts +42 -6
  706. package/src/abi/event_selector.ts +2 -8
  707. package/src/abi/function_selector.ts +3 -12
  708. package/src/abi/note_selector.ts +3 -12
  709. package/src/abi/selector.ts +1 -1
  710. package/src/abi/utils.ts +6 -4
  711. package/src/avm/avm.ts +6 -1
  712. package/src/avm/message_pack.ts +12 -3
  713. package/src/avm/revert_code.ts +19 -39
  714. package/src/aztec-address/index.ts +50 -17
  715. package/src/block/attestation_info.ts +16 -11
  716. package/src/block/block_data.ts +3 -4
  717. package/src/block/block_hash.ts +21 -14
  718. package/src/block/block_parameter.ts +72 -4
  719. package/src/block/index.ts +0 -1
  720. package/src/block/l2_block_info.ts +8 -6
  721. package/src/block/l2_block_source.ts +258 -144
  722. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
  723. package/src/block/l2_block_stream/index.ts +1 -0
  724. package/src/block/l2_block_stream/interfaces.ts +99 -9
  725. package/src/block/l2_block_stream/l2_block_stream.ts +229 -177
  726. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  727. package/src/block/l2_block_stream/l2_tips_store_base.ts +85 -60
  728. package/src/block/proposal/attestations_and_signers.ts +85 -24
  729. package/src/block/test/l2_tips_store_test_suite.ts +271 -22
  730. package/src/block/validate_block_result.ts +48 -2
  731. package/src/checkpoint/checkpoint.ts +13 -3
  732. package/src/checkpoint/checkpoint_data.ts +44 -4
  733. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  734. package/src/checkpoint/digest.ts +28 -0
  735. package/src/checkpoint/index.ts +4 -0
  736. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  737. package/src/checkpoint/simulation_overrides.ts +171 -0
  738. package/src/checkpoint/validate.ts +16 -6
  739. package/src/config/chain-config.ts +13 -16
  740. package/src/config/index.ts +1 -1
  741. package/src/config/network-consensus-config.ts +291 -0
  742. package/src/config/sequencer-config.ts +68 -9
  743. package/src/contract/complete_address.ts +7 -3
  744. package/src/contract/contract_address.ts +10 -9
  745. package/src/contract/contract_instance.ts +73 -3
  746. package/src/contract/interfaces/contract_data_source.ts +2 -4
  747. package/src/contract/interfaces/contract_instance.ts +32 -10
  748. package/src/contract/interfaces/node-info.ts +11 -0
  749. package/src/contract/partial_address.ts +8 -2
  750. package/src/contract/private_function.ts +3 -1
  751. package/src/database-version/version_manager.ts +113 -6
  752. package/src/deserialization/index.ts +35 -2
  753. package/src/epoch-helpers/index.ts +5 -0
  754. package/src/file-store/factory.ts +7 -0
  755. package/src/file-store/index.ts +1 -0
  756. package/src/file-store/memory.ts +94 -0
  757. package/src/gas/README.md +230 -35
  758. package/src/gas/fee_math.ts +120 -0
  759. package/src/gas/gas.ts +8 -3
  760. package/src/gas/gas_fees.ts +26 -13
  761. package/src/gas/gas_settings.ts +63 -15
  762. package/src/gas/index.ts +2 -0
  763. package/src/gas/tx_gas_limits.ts +123 -0
  764. package/src/ha-signing/config.ts +37 -23
  765. package/src/ha-signing/index.ts +3 -1
  766. package/src/ha-signing/local_config.ts +21 -2
  767. package/src/ha-signing/types.ts +48 -34
  768. package/src/hash/hash.ts +29 -10
  769. package/src/interfaces/api_limit.ts +1 -1
  770. package/src/interfaces/archiver.ts +96 -93
  771. package/src/interfaces/aztec-node-admin.ts +36 -21
  772. package/src/interfaces/aztec-node-debug.ts +92 -0
  773. package/src/interfaces/aztec-node.ts +398 -271
  774. package/src/interfaces/block-builder.ts +4 -0
  775. package/src/interfaces/block_response.ts +92 -0
  776. package/src/interfaces/chain_tips.ts +16 -0
  777. package/src/interfaces/checkpoint_parameter.ts +20 -0
  778. package/src/interfaces/checkpoint_response.ts +84 -0
  779. package/src/interfaces/client.ts +8 -1
  780. package/src/interfaces/configs.ts +67 -7
  781. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  782. package/src/interfaces/l1_publish_info.ts +40 -0
  783. package/src/interfaces/l2_logs_source.ts +13 -42
  784. package/src/interfaces/merkle_tree_operations.ts +3 -2
  785. package/src/interfaces/p2p-bootstrap.ts +2 -2
  786. package/src/interfaces/p2p.ts +59 -19
  787. package/src/interfaces/private_kernel_prover.ts +98 -12
  788. package/src/interfaces/prover-agent.ts +1 -1
  789. package/src/interfaces/prover-client.ts +3 -8
  790. package/src/interfaces/prover-node.ts +36 -21
  791. package/src/interfaces/proving-job-source.ts +4 -4
  792. package/src/interfaces/proving-job.ts +18 -6
  793. package/src/interfaces/public_storage_override.ts +26 -0
  794. package/src/interfaces/server.ts +5 -1
  795. package/src/interfaces/server_circuit_prover.ts +2 -2
  796. package/src/interfaces/slasher.ts +17 -10
  797. package/src/interfaces/tx_provider.ts +6 -0
  798. package/src/interfaces/validator.ts +44 -10
  799. package/src/interfaces/world_state.ts +15 -1
  800. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
  801. package/src/kernel/hints/key_validation_request.ts +18 -16
  802. package/src/kernel/hints/read_request.ts +1 -1
  803. package/src/kernel/index.ts +5 -1
  804. package/src/kernel/log_hash.ts +36 -13
  805. package/src/kernel/note_hash.ts +1 -1
  806. package/src/kernel/nullifier.ts +1 -1
  807. package/src/kernel/private_circuit_public_inputs.ts +12 -1
  808. package/src/kernel/private_context_inputs.ts +10 -3
  809. package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -0
  810. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +46 -0
  811. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +49 -0
  812. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
  813. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  814. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  815. package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
  816. package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
  817. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  818. package/src/kernel/private_log_data.ts +4 -1
  819. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  820. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  821. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  822. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  823. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  824. package/src/kernel/public_call_request.ts +22 -7
  825. package/src/keys/derivation.ts +79 -22
  826. package/src/keys/public_key.ts +26 -2
  827. package/src/keys/public_keys.ts +124 -110
  828. package/src/kv-store/config.ts +3 -10
  829. package/src/l1-contracts/index.ts +1 -1
  830. package/src/logs/app_tagging_secret.ts +160 -0
  831. package/src/logs/app_tagging_secret_kind.ts +21 -0
  832. package/src/logs/contract_class_log.ts +15 -14
  833. package/src/logs/index.ts +6 -8
  834. package/src/logs/log_cursor.ts +110 -0
  835. package/src/logs/log_result.ts +104 -0
  836. package/src/logs/logs_query.ts +138 -0
  837. package/src/logs/pre_tag.ts +3 -6
  838. package/src/logs/private_log.ts +9 -3
  839. package/src/logs/query_all_logs_by_tags.ts +98 -0
  840. package/src/logs/shared_secret_derivation.ts +47 -14
  841. package/src/logs/siloed_tag.ts +14 -10
  842. package/src/logs/tag.ts +8 -8
  843. package/src/logs/tagging_index_range.ts +4 -10
  844. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  845. package/src/messaging/index.ts +1 -0
  846. package/src/messaging/l1_to_l2_message.ts +51 -13
  847. package/src/messaging/l2_to_l1_membership.ts +108 -19
  848. package/src/messaging/l2_to_l1_message.ts +29 -9
  849. package/src/noir/index.ts +2 -0
  850. package/src/p2p/attestation_utils.ts +8 -1
  851. package/src/p2p/block_proposal.ts +111 -36
  852. package/src/p2p/checkpoint_attestation.ts +38 -30
  853. package/src/p2p/checkpoint_proposal.ts +128 -73
  854. package/src/p2p/consensus_payload.ts +59 -28
  855. package/src/p2p/gossipable.ts +4 -4
  856. package/src/p2p/signature_utils.ts +117 -23
  857. package/src/p2p/signed_txs.ts +46 -28
  858. package/src/parity/parity_base_private_inputs.ts +10 -4
  859. package/src/parity/parity_public_inputs.ts +9 -2
  860. package/src/proofs/chonk_proof.ts +49 -15
  861. package/src/rollup/avm_proof_data.ts +2 -2
  862. package/src/rollup/block_headers_hash.ts +11 -2
  863. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  864. package/src/rollup/checkpoint_header.ts +16 -2
  865. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  866. package/src/schemas/schemas.ts +6 -1
  867. package/src/slashing/helpers.ts +13 -9
  868. package/src/slashing/index.ts +1 -2
  869. package/src/slashing/serialization.ts +1 -81
  870. package/src/slashing/types.ts +24 -49
  871. package/src/slashing/{tally.ts → votes.ts} +1 -1
  872. package/src/stats/stats.ts +6 -2
  873. package/src/tests/factories.ts +111 -86
  874. package/src/tests/mocks.ts +72 -71
  875. package/src/timetable/README.md +609 -0
  876. package/src/timetable/budgets.ts +87 -0
  877. package/src/timetable/build_proposer_timetable.ts +42 -0
  878. package/src/timetable/consensus_timetable.ts +126 -0
  879. package/src/timetable/index.ts +4 -66
  880. package/src/timetable/proposer_timetable.ts +190 -0
  881. package/src/timetable/timetable-example.svg +108 -0
  882. package/src/trees/append_only_tree_snapshot.ts +8 -3
  883. package/src/trees/nullifier_leaf.ts +4 -0
  884. package/src/trees/nullifier_membership_witness.ts +0 -21
  885. package/src/trees/public_data_witness.ts +0 -31
  886. package/src/tx/block_header.ts +10 -5
  887. package/src/tx/execution_payload.ts +2 -1
  888. package/src/tx/fee_provider.ts +10 -0
  889. package/src/tx/global_variable_builder.ts +3 -20
  890. package/src/tx/global_variables.ts +12 -20
  891. package/src/tx/hashed_values.ts +8 -3
  892. package/src/tx/index.ts +1 -0
  893. package/src/tx/indexed_tx_effect.ts +18 -6
  894. package/src/tx/partial_state_reference.ts +8 -3
  895. package/src/tx/private_tx_constant_data.ts +25 -2
  896. package/src/tx/profiling.ts +4 -4
  897. package/src/tx/proven_tx.ts +6 -0
  898. package/src/tx/public_call_request_with_calldata.ts +8 -3
  899. package/src/tx/simulated_tx.ts +22 -21
  900. package/src/tx/state_reference.ts +9 -4
  901. package/src/tx/tree_snapshots.ts +9 -4
  902. package/src/tx/tx.ts +60 -24
  903. package/src/tx/tx_constant_data.ts +8 -3
  904. package/src/tx/tx_context.ts +8 -3
  905. package/src/tx/tx_hash.ts +20 -5
  906. package/src/tx/tx_receipt.ts +265 -85
  907. package/src/tx/validator/error_texts.ts +2 -1
  908. package/src/tx/validator/tx_validator.ts +1 -5
  909. package/src/types/shared.ts +8 -13
  910. package/src/update-checker/dev_version.ts +2 -0
  911. package/src/update-checker/index.ts +1 -0
  912. package/src/update-checker/package_version.ts +10 -23
  913. package/src/validators/schemas.ts +6 -4
  914. package/src/validators/types.ts +21 -2
  915. package/src/versioning/versioning.ts +1 -1
  916. package/src/vks/verification_key.ts +5 -184
  917. package/src/world-state/genesis_data.ts +37 -0
  918. package/src/world-state/index.ts +1 -0
  919. package/src/world-state/world_state_revision.ts +9 -1
  920. package/dest/abi/mocked_keys.d.ts +0 -2
  921. package/dest/abi/mocked_keys.d.ts.map +0 -1
  922. package/dest/abi/mocked_keys.js +0 -1
  923. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  924. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  925. package/dest/block/checkpointed_l2_block.js +0 -46
  926. package/dest/config/pipelining-config.d.ts +0 -19
  927. package/dest/config/pipelining-config.d.ts.map +0 -1
  928. package/dest/config/pipelining-config.js +0 -18
  929. package/dest/interfaces/epoch-prover.d.ts +0 -57
  930. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  931. package/dest/interfaces/epoch-prover.js +0 -1
  932. package/dest/interfaces/get_logs_response.d.ts +0 -97
  933. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  934. package/dest/interfaces/get_logs_response.js +0 -12
  935. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -47
  936. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
  937. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
  938. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  939. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  940. package/dest/l1-contracts/slash_factory.js +0 -158
  941. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  942. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  943. package/dest/logs/extended_contract_class_log.js +0 -67
  944. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  945. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  946. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  947. package/dest/logs/extended_public_log.d.ts +0 -106
  948. package/dest/logs/extended_public_log.d.ts.map +0 -1
  949. package/dest/logs/extended_public_log.js +0 -73
  950. package/dest/logs/log_filter.d.ts +0 -25
  951. package/dest/logs/log_filter.d.ts.map +0 -1
  952. package/dest/logs/log_filter.js +0 -12
  953. package/dest/logs/log_id.d.ts +0 -85
  954. package/dest/logs/log_id.d.ts.map +0 -1
  955. package/dest/logs/log_id.js +0 -94
  956. package/dest/logs/message_context.d.ts +0 -26
  957. package/dest/logs/message_context.d.ts.map +0 -1
  958. package/dest/logs/message_context.js +0 -70
  959. package/dest/logs/pending_tagged_log.d.ts +0 -13
  960. package/dest/logs/pending_tagged_log.d.ts.map +0 -1
  961. package/dest/logs/pending_tagged_log.js +0 -34
  962. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  963. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  964. package/dest/logs/tx_scoped_l2_log.js +0 -77
  965. package/dest/slashing/empire.d.ts +0 -31
  966. package/dest/slashing/empire.d.ts.map +0 -1
  967. package/dest/slashing/empire.js +0 -87
  968. package/src/abi/mocked_keys.ts +0 -2
  969. package/src/block/checkpointed_l2_block.ts +0 -70
  970. package/src/config/pipelining-config.ts +0 -31
  971. package/src/interfaces/epoch-prover.ts +0 -72
  972. package/src/interfaces/get_logs_response.ts +0 -35
  973. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
  974. package/src/l1-contracts/slash_factory.ts +0 -180
  975. package/src/logs/extended_contract_class_log.ts +0 -87
  976. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  977. package/src/logs/extended_public_log.ts +0 -94
  978. package/src/logs/log_filter.ts +0 -36
  979. package/src/logs/log_id.ts +0 -125
  980. package/src/logs/message_context.ts +0 -72
  981. package/src/logs/pending_tagged_log.ts +0 -39
  982. package/src/logs/tx_scoped_l2_log.ts +0 -114
  983. package/src/slashing/empire.ts +0 -104
@@ -1,12 +1,18 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
  import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
4
3
  /**
5
4
  * Abstract base class for L2 tips stores. Provides common event handling logic
6
5
  * while delegating storage operations to subclasses.
7
6
  */ export class L2TipsStoreBase {
7
+ initialBlockHash;
8
+ constructor(initialBlockHash){
9
+ this.initialBlockHash = initialBlockHash;
10
+ }
8
11
  // Public interface implementation
9
- getL2BlockHash(number) {
12
+ async getL2BlockHash(number) {
13
+ if (number === 0) {
14
+ return await this.getStoredBlockHash(number) ?? this.initialBlockHash.toString();
15
+ }
10
16
  return this.getStoredBlockHash(number);
11
17
  }
12
18
  getL2Tips() {
@@ -39,11 +45,28 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
39
45
  };
40
46
  });
41
47
  }
48
+ /**
49
+ * Records `(number → hash)` witnesses into the block-hash index without moving any tip cursor. In tips-only mode
50
+ * the hash history is sparse (one anchor per tip-moving poll), so a consumer that materializes per-height state
51
+ * should witness those heights or its prunes are over-deep by the gap to the nearest anchor. Witnesses are compared
52
+ * against the source, not trusted, so they cannot cause under-deep prunes; this is always safe to call.
53
+ */ async recordBlockHashes(blocks) {
54
+ await this.runInTransaction(async ()=>{
55
+ for (const block of blocks){
56
+ if (block.hash) {
57
+ await this.setBlockHash(block.number, block.hash);
58
+ }
59
+ }
60
+ });
61
+ }
42
62
  async handleBlockStreamEvent(event) {
43
63
  switch(event.type){
44
64
  case 'blocks-added':
45
65
  await this.handleBlocksAdded(event);
46
66
  break;
67
+ case 'chain-proposed':
68
+ await this.handleChainProposed(event);
69
+ break;
47
70
  case 'chain-checkpointed':
48
71
  await this.handleChainCheckpointed(event);
49
72
  break;
@@ -68,7 +91,7 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
68
91
  if (blockNumber === undefined || blockNumber === 0) {
69
92
  return {
70
93
  number: BlockNumber.ZERO,
71
- hash: GENESIS_BLOCK_HEADER_HASH.toString()
94
+ hash: this.initialBlockHash.toString()
72
95
  };
73
96
  }
74
97
  const blockHash = await this.getStoredBlockHash(blockNumber);
@@ -83,26 +106,22 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
83
106
  async getCheckpointId(tag) {
84
107
  const blockNumber = await this.getTip(tag);
85
108
  if (blockNumber === undefined || blockNumber === 0) {
86
- return {
87
- number: CheckpointNumber.ZERO,
88
- hash: GENESIS_CHECKPOINT_HEADER_HASH.toString()
89
- };
109
+ return this.genesisCheckpointId();
90
110
  }
91
- const checkpointNumber = await this.getCheckpointNumberForBlock(blockNumber);
92
- if (checkpointNumber === undefined) {
93
- // No checkpoint associated with this block yet
94
- return {
95
- number: CheckpointNumber.ZERO,
96
- hash: GENESIS_CHECKPOINT_HEADER_HASH.toString()
97
- };
98
- }
99
- const checkpoint = await this.getCheckpoint(checkpointNumber);
100
- if (!checkpoint) {
101
- throw new Error(`Checkpoint not found for checkpoint number ${checkpointNumber}`);
111
+ // The checkpoint id recorded for this cursor when it was last advanced is the single source of truth.
112
+ // The writers (handleChainCheckpointed/Proven/Finalized/Pruned) always record an id alongside any
113
+ // non-genesis cursor advance, so a missing id on a real block is genuine store corruption. Fail loudly
114
+ // rather than silently reporting checkpoint zero, which would drive a checkpoint-replay storm.
115
+ const storedCheckpoint = await this.getTipCheckpoint(tag);
116
+ if (storedCheckpoint !== undefined) {
117
+ return storedCheckpoint;
102
118
  }
119
+ throw new Error(`No checkpoint id recorded for ${tag} tip at block ${blockNumber}; the L2 tips store is corrupted`);
120
+ }
121
+ genesisCheckpointId() {
103
122
  return {
104
- number: checkpointNumber,
105
- hash: checkpoint.checkpoint.hash().toString()
123
+ number: CheckpointNumber.ZERO,
124
+ hash: GENESIS_CHECKPOINT_HEADER_HASH.toString()
106
125
  };
107
126
  }
108
127
  async handleBlocksAdded(event) {
@@ -117,13 +136,21 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
117
136
  await this.setTip('proposed', blocks.at(-1).number);
118
137
  });
119
138
  }
139
+ async handleChainProposed(event) {
140
+ if (event.type !== 'chain-proposed') {
141
+ return;
142
+ }
143
+ // Records the proposed tip into the block-hash index the walk-back reads. In tips-only mode this is the sole
144
+ // writer of proposed-tip history, leaving one sparse anchor per tip-moving pass for reorg detection.
145
+ await this.runInTransaction(()=>this.saveTag('proposed', event.block));
146
+ }
120
147
  async handleChainCheckpointed(event) {
121
148
  if (event.type !== 'chain-checkpointed') {
122
149
  return;
123
150
  }
124
151
  await this.runInTransaction(async ()=>{
125
152
  await this.saveTag('checkpointed', event.block);
126
- await this.saveCheckpoint(event.checkpoint);
153
+ await this.setTipCheckpoint('checkpointed', event.checkpoint);
127
154
  });
128
155
  }
129
156
  async handleChainPruned(event) {
@@ -131,11 +158,29 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
131
158
  return;
132
159
  }
133
160
  await this.runInTransaction(async ()=>{
161
+ // A prune is a rollback: the proposed tip moves to the prune target unconditionally, but checkpoint-bearing
162
+ // cursors may only move backward (advancing one onto an uncheckpointed block would leave it without a recorded
163
+ // checkpoint id, which getCheckpointId throws on).
134
164
  await this.saveTag('proposed', event.block);
135
- await this.saveTag('checkpointed', event.block);
136
- const storeProven = await this.getBlockId('proven');
137
- if (storeProven.number > event.block.number) {
138
- await this.saveTag('proven', event.block);
165
+ // Clamp each checkpoint-bearing cursor down to its OWN source tip when it leads it; the event carries a valid
166
+ // (block, id) pair for each. Clamping the proven cursor onto the (possibly higher) checkpointed tip instead
167
+ // would transiently report unproven blocks as proven. The source guarantees proven <= checkpointed, so per-tip
168
+ // clamping preserves the local invariant.
169
+ for (const { tag, sourceTip } of [
170
+ {
171
+ tag: 'checkpointed',
172
+ sourceTip: event.checkpointed
173
+ },
174
+ {
175
+ tag: 'proven',
176
+ sourceTip: event.proven
177
+ }
178
+ ]){
179
+ const current = await this.getTip(tag);
180
+ if (current !== undefined && current > sourceTip.block.number) {
181
+ await this.saveTag(tag, sourceTip.block);
182
+ await this.setTipCheckpoint(tag, sourceTip.checkpoint);
183
+ }
139
184
  }
140
185
  });
141
186
  }
@@ -145,6 +190,7 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
145
190
  }
146
191
  await this.runInTransaction(async ()=>{
147
192
  await this.saveTag('proven', event.block);
193
+ await this.setTipCheckpoint('proven', event.checkpoint);
148
194
  });
149
195
  }
150
196
  async handleChainFinalized(event) {
@@ -153,12 +199,19 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
153
199
  }
154
200
  await this.runInTransaction(async ()=>{
155
201
  await this.saveTag('finalized', event.block);
156
- const finalizedCheckpointNumber = await this.getCheckpointNumberForBlock(event.block.number);
157
- await this.deleteBlockHashesBefore(event.block.number);
158
- await this.deleteBlockToCheckpointBefore(event.block.number);
159
- if (finalizedCheckpointNumber !== undefined) {
160
- await this.deleteCheckpointsBefore(finalizedCheckpointNumber);
161
- }
202
+ await this.setTipCheckpoint('finalized', event.checkpoint);
203
+ // Prune block hashes below the lowest live tip. Cap the deletion bound at the lowest live tip rather
204
+ // than the finalized tip alone: this should always be the finalized tip, but we have hit bugs where
205
+ // this is not the case. Deleting the block hash for a live tip would dangle subsequent `getBlockId`
206
+ // lookups and lock the block stream into an error loop.
207
+ const tips = await Promise.all([
208
+ this.getTip('proposed'),
209
+ this.getTip('checkpointed'),
210
+ this.getTip('proven')
211
+ ]);
212
+ const liveTipBlocks = tips.filter((t)=>t !== undefined && t > 0);
213
+ const safeBlockBound = BlockNumber(Math.min(event.block.number, ...liveTipBlocks));
214
+ await this.deleteBlockHashesBefore(safeBlockBound);
162
215
  });
163
216
  }
164
217
  async saveTag(name, block) {
@@ -167,13 +220,4 @@ import { GENESIS_CHECKPOINT_HEADER_HASH } from '../l2_block_source.js';
167
220
  await this.setBlockHash(block.number, block.hash);
168
221
  }
169
222
  }
170
- async saveCheckpoint(publishedCheckpoint) {
171
- const checkpoint = publishedCheckpoint.checkpoint;
172
- const lastBlock = checkpoint.blocks.at(-1);
173
- // Only store the mapping for the last block since tips only point to checkpoint boundaries
174
- await Promise.all([
175
- this.setCheckpointNumberForBlock(lastBlock.number, checkpoint.number),
176
- this.saveCheckpointData(publishedCheckpoint)
177
- ]);
178
- }
179
223
  }
@@ -1,39 +1,27 @@
1
1
  import type { ViemCommitteeAttestations } from '@aztec/ethereum/contracts';
2
2
  import { z } from 'zod';
3
- import type { Signable, SignatureDomainSeparator } from '../../p2p/signature_utils.js';
3
+ import { type CoordinationSignatureContext, type CoordinationSignatureType, type Signable } from '../../p2p/signature_utils.js';
4
4
  import { CommitteeAttestation, EthAddress } from './committee_attestation.js';
5
5
  export declare class CommitteeAttestationsAndSigners implements Signable {
6
6
  attestations: CommitteeAttestation[];
7
- constructor(attestations: CommitteeAttestation[]);
8
- static get schema(): z.ZodEffects<z.ZodObject<{
9
- attestations: z.ZodArray<z.ZodEffects<z.ZodObject<{
10
- address: z.ZodType<EthAddress, any, string>;
11
- signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, import("./committee_attestation.js").Signature, string>;
12
- }, "strip", z.ZodTypeAny, {
7
+ readonly signatureContext: CoordinationSignatureContext;
8
+ readonly primaryType: CoordinationSignatureType;
9
+ constructor(attestations: CommitteeAttestation[], signatureContext: CoordinationSignatureContext);
10
+ static get schema(): z.ZodPipe<z.ZodObject<{
11
+ attestations: z.ZodArray<z.ZodPipe<z.ZodObject<{
12
+ address: z.ZodType<EthAddress, string, z.core.$ZodTypeInternals<EthAddress, string>>;
13
+ signature: z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<import("./committee_attestation.js").Signature, `0x${string}`>>;
14
+ }, z.core.$strip>, z.ZodTransform<CommitteeAttestation, {
13
15
  address: EthAddress;
14
16
  signature: import("./committee_attestation.js").Signature;
15
- }, {
16
- address: string;
17
- signature: string;
18
- }>, CommitteeAttestation, {
19
- address: string;
20
- signature: string;
21
- }>, "many">;
22
- }, "strip", z.ZodTypeAny, {
17
+ }>>>;
18
+ signatureContext: import("@aztec/foundation/schemas").ZodFor<CoordinationSignatureContext>;
19
+ }, z.core.$strip>, z.ZodTransform<CommitteeAttestationsAndSigners, {
23
20
  attestations: CommitteeAttestation[];
24
- }, {
25
- attestations: {
26
- address: string;
27
- signature: string;
28
- }[];
29
- }>, CommitteeAttestationsAndSigners, {
30
- attestations: {
31
- address: string;
32
- signature: string;
33
- }[];
34
- }>;
35
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
36
- static empty(): CommitteeAttestationsAndSigners;
21
+ signatureContext: CoordinationSignatureContext;
22
+ }>>;
23
+ getPayloadToSign(): Buffer;
24
+ static empty(signatureContext: CoordinationSignatureContext): CommitteeAttestationsAndSigners;
37
25
  toString(): void;
38
26
  getSigners(): EthAddress[];
39
27
  getSignedAttestations(): CommitteeAttestation[];
@@ -43,6 +31,7 @@ export declare class CommitteeAttestationsAndSigners implements Signable {
43
31
  * @param attestations - Array of committee attestations with addresses and signatures
44
32
  * @returns Packed attestations with bitmap and tightly packed signature/address data
45
33
  */
34
+ static packAttestations(attestations: CommitteeAttestation[]): ViemCommitteeAttestations;
46
35
  getPackedAttestations(): ViemCommitteeAttestations;
47
36
  }
48
37
  /**
@@ -53,7 +42,25 @@ export declare class CommitteeAttestationsAndSigners implements Signable {
53
42
  */
54
43
  export declare class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
55
44
  private signers;
56
- constructor(attestations: CommitteeAttestation[], signers: EthAddress[]);
45
+ constructor(attestations: CommitteeAttestation[], signers: EthAddress[], signatureContext: CoordinationSignatureContext);
57
46
  getSigners(): EthAddress[];
58
47
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svcHJvcG9zYWwvYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUscUJBQWEsK0JBQWdDLFlBQVcsUUFBUTtJQUMzQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7SUFBdkQsWUFBbUIsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEVBQUk7SUFFM0QsTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BTWhCO0lBRUQsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLHdCQUF3QixHQUFHLE1BQU0sQ0FXbEU7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLCtCQUErQixDQUU5QztJQUVELFFBQVEsU0FFUDtJQUVELFVBQVUsaUJBRVQ7SUFFRCxxQkFBcUIsMkJBRXBCO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsSUFBSSx5QkFBeUIsQ0FnRWpEO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILHFCQUFhLHdDQUF5QyxTQUFRLCtCQUErQjtJQUd6RixPQUFPLENBQUMsT0FBTztJQUZqQixZQUNFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxFQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLEVBRzlCO0lBRVEsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUVsQztDQUNGIn0=
48
+ /**
49
+ * Malicious extension of CommitteeAttestationsAndSigners that rewrites every non-proposer signature slot's
50
+ * recovery byte to yParity form (v ∈ {0, 1}) in the packed output, after the honest `packAttestations` has
51
+ * already canonicalized it to v ∈ {27, 28}. Models a malicious selected proposer that hand-crafts
52
+ * `propose()` calldata L1 accepts but no honest node can byte-replay: each rewritten signature still
53
+ * recovers to the same member (r, s and the recovery parity are preserved), the bitmap bits stay set, and
54
+ * `getSigners()` stays consistent, so `propose()` does not revert `SignersSizeMismatch` -- yet the
55
+ * checkpoint can never be proven (`ECDSA.recover` rejects v ∉ {27, 28}). The proposer's own slot is left
56
+ * canonical so L1 `verifyProposer` (which recovers that slot) still accepts the checkpoint. For testing only.
57
+ */
58
+ export declare class MaliciousYParityCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
59
+ /** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */
60
+ private proposerIndex;
61
+ constructor(attestations: CommitteeAttestation[],
62
+ /** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */
63
+ proposerIndex: number, signatureContext: CoordinationSignatureContext);
64
+ getPackedAttestations(): ViemCommitteeAttestations;
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svcHJvcG9zYWwvYXR0ZXN0YXRpb25zX2FuZF9zaWduZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsS0FBSyw0QkFBNEIsRUFDakMsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSyxRQUFRLEVBRWQsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUscUJBQWEsK0JBQWdDLFlBQVcsUUFBUTtJQUlyRCxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7YUFDM0IsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBSmhFLFFBQVEsQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQTRCO0lBRTNFLFlBQ1MsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEVBQzNCLGdCQUFnQixFQUFFLDRCQUE0QixFQUM1RDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7UUFPaEI7SUFFRCxnQkFBZ0IsSUFBSSxNQUFNLENBV3pCO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsR0FBRywrQkFBK0IsQ0FFNUY7SUFFRCxRQUFRLFNBRVA7SUFFRCxVQUFVLGlCQUVUO0lBRUQscUJBQXFCLDJCQUVwQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLHlCQUF5QixDQW1FdkY7SUFFRCxxQkFBcUIsSUFBSSx5QkFBeUIsQ0FFakQ7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsd0NBQXlDLFNBQVEsK0JBQStCO0lBR3pGLE9BQU8sQ0FBQyxPQUFPO0lBRmpCLFlBQ0UsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEVBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDN0IsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBRy9DO0lBRVEsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUVsQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsK0NBQWdELFNBQVEsK0JBQStCO0lBR2hHLHlHQUF5RztJQUN6RyxPQUFPLENBQUMsYUFBYTtJQUh2QixZQUNFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtJQUNwQyx5R0FBeUc7SUFDakcsYUFBYSxFQUFFLE1BQU0sRUFDN0IsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBRy9DO0lBRVEscUJBQXFCLElBQUkseUJBQXlCLENBbUIxRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAa,+BAAgC,YAAW,QAAQ;IAC3C,YAAY,EAAE,oBAAoB,EAAE;IAAvD,YAAmB,YAAY,EAAE,oBAAoB,EAAE,EAAI;IAE3D,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;OAMhB;IAED,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAWlE;IAED,MAAM,CAAC,KAAK,IAAI,+BAA+B,CAE9C;IAED,QAAQ,SAEP;IAED,UAAU,iBAET;IAED,qBAAqB,2BAEpB;IAED;;;;;OAKG;IACH,qBAAqB,IAAI,yBAAyB,CAgEjD;CACF;AAED;;;;;GAKG;AACH,qBAAa,wCAAyC,SAAQ,+BAA+B;IAGzF,OAAO,CAAC,OAAO;IAFjB,YACE,YAAY,EAAE,oBAAoB,EAAE,EAC5B,OAAO,EAAE,UAAU,EAAE,EAG9B;IAEQ,UAAU,IAAI,UAAU,EAAE,CAElC;CACF"}
1
+ {"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAa,+BAAgC,YAAW,QAAQ;IAIrD,YAAY,EAAE,oBAAoB,EAAE;aAC3B,gBAAgB,EAAE,4BAA4B;IAJhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAA4B;IAE3E,YACS,YAAY,EAAE,oBAAoB,EAAE,EAC3B,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;QAOhB;IAED,gBAAgB,IAAI,MAAM,CAWzB;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,+BAA+B,CAE5F;IAED,QAAQ,SAEP;IAED,UAAU,iBAET;IAED,qBAAqB,2BAEpB;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,yBAAyB,CAmEvF;IAED,qBAAqB,IAAI,yBAAyB,CAEjD;CACF;AAED;;;;;GAKG;AACH,qBAAa,wCAAyC,SAAQ,+BAA+B;IAGzF,OAAO,CAAC,OAAO;IAFjB,YACE,YAAY,EAAE,oBAAoB,EAAE,EAC5B,OAAO,EAAE,UAAU,EAAE,EAC7B,gBAAgB,EAAE,4BAA4B,EAG/C;IAEQ,UAAU,IAAI,UAAU,EAAE,CAElC;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,+CAAgD,SAAQ,+BAA+B;IAGhG,yGAAyG;IACzG,OAAO,CAAC,aAAa;IAHvB,YACE,YAAY,EAAE,oBAAoB,EAAE;IACpC,yGAAyG;IACjG,aAAa,EAAE,MAAM,EAC7B,gBAAgB,EAAE,4BAA4B,EAG/C;IAEQ,qBAAqB,IAAI,yBAAyB,CAmB1D;CACF"}
@@ -1,22 +1,28 @@
1
- import { hexToBuffer } from '@aztec/foundation/string';
1
+ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
2
2
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
3
3
  import { z } from 'zod';
4
+ import { coordinationSignatureContextSchema } from '../../p2p/signature_utils.js';
4
5
  import { CommitteeAttestation } from './committee_attestation.js';
5
6
  export class CommitteeAttestationsAndSigners {
6
7
  attestations;
7
- constructor(attestations){
8
+ signatureContext;
9
+ primaryType;
10
+ constructor(attestations, signatureContext){
8
11
  this.attestations = attestations;
12
+ this.signatureContext = signatureContext;
13
+ this.primaryType = 'AttestationsAndSigners';
9
14
  }
10
15
  static get schema() {
11
16
  return z.object({
12
- attestations: CommitteeAttestation.schema.array()
13
- }).transform((obj)=>new CommitteeAttestationsAndSigners(obj.attestations));
17
+ attestations: CommitteeAttestation.schema.array(),
18
+ signatureContext: coordinationSignatureContextSchema
19
+ }).transform((obj)=>new CommitteeAttestationsAndSigners(obj.attestations, obj.signatureContext));
14
20
  }
15
- getPayloadToSign(domainSeparator) {
16
- const abi = parseAbiParameters('uint8,(bytes,bytes),address[]');
21
+ getPayloadToSign() {
22
+ // Matches the L1 abi.encode(attestations, signers) in AttestationLib.sol#getAttestationsAndSignersDigest.
23
+ const abi = parseAbiParameters('(bytes,bytes),address[]');
17
24
  const packed = this.getPackedAttestations();
18
25
  const encodedData = encodeAbiParameters(abi, [
19
- domainSeparator,
20
26
  [
21
27
  packed.signatureIndices,
22
28
  packed.signaturesOrAddresses
@@ -25,8 +31,8 @@ export class CommitteeAttestationsAndSigners {
25
31
  ]);
26
32
  return hexToBuffer(encodedData);
27
33
  }
28
- static empty() {
29
- return new CommitteeAttestationsAndSigners([]);
34
+ static empty(signatureContext) {
35
+ return new CommitteeAttestationsAndSigners([], signatureContext);
30
36
  }
31
37
  toString() {
32
38
  throw new Error('Not implemented');
@@ -42,18 +48,20 @@ export class CommitteeAttestationsAndSigners {
42
48
  *
43
49
  * @param attestations - Array of committee attestations with addresses and signatures
44
50
  * @returns Packed attestations with bitmap and tightly packed signature/address data
45
- */ getPackedAttestations() {
46
- const length = this.attestations.length;
47
- const attestations = this.attestations.map((a)=>a.toViem());
51
+ */ static packAttestations(attestations) {
52
+ const length = attestations.length;
53
+ const viemAttestations = attestations.map((a)=>a.toViem());
48
54
  // Calculate bitmap size (1 bit per attestation, rounded up to nearest byte)
49
55
  const bitmapSize = Math.ceil(length / 8);
50
56
  const signatureIndices = new Uint8Array(bitmapSize);
51
57
  // Calculate total data size needed
52
58
  let totalDataSize = 0;
53
- for(let i = 0; i < length; i++){
54
- const signature = attestations[i].signature;
55
- // Check if signature is empty (v = 0)
56
- const isEmpty = signature.v === 0;
59
+ for (const attestation of viemAttestations){
60
+ const signature = attestation.signature;
61
+ // A slot is empty (a non-signing member, packed as its address) only when r, s and v are all zero
62
+ // matching Signature.isEmpty() and getSigners(), so the bitmap popcount and the signers list can
63
+ // never disagree (which would revert propose() with SignersSizeMismatch).
64
+ const isEmpty = signature.v === 0 && BigInt(signature.r) === 0n && BigInt(signature.s) === 0n;
57
65
  if (!isEmpty) {
58
66
  totalDataSize += 65; // v (1) + r (32) + s (32)
59
67
  } else {
@@ -63,18 +71,19 @@ export class CommitteeAttestationsAndSigners {
63
71
  const signaturesOrAddresses = new Uint8Array(totalDataSize);
64
72
  let dataIndex = 0;
65
73
  // Pack the data
66
- for(let i = 0; i < length; i++){
67
- const attestation = attestations[i];
74
+ for (const [i, attestation] of viemAttestations.entries()){
68
75
  const signature = attestation.signature;
69
- // Check if signature is empty
70
- const isEmpty = signature.v === 0;
76
+ // Empty iff r, s and v are all zero (see the size-tally loop above).
77
+ const isEmpty = signature.v === 0 && BigInt(signature.r) === 0n && BigInt(signature.s) === 0n;
71
78
  if (!isEmpty) {
72
79
  // Set bit in bitmap (bit 7-0 in each byte, left to right)
73
80
  const byteIndex = Math.floor(i / 8);
74
81
  const bitIndex = 7 - i % 8;
75
- signatureIndices[byteIndex] |= 1 << bitIndex;
76
- // Pack signature: v + r + s
77
- signaturesOrAddresses[dataIndex] = signature.v;
82
+ signatureIndices[byteIndex] = (signatureIndices[byteIndex] ?? 0) | 1 << bitIndex;
83
+ // Pack signature: v + r + s. Canonicalize a yParity recovery byte (v = 0/1) to 27/28 — it
84
+ // recovers to the same signer, but L1 ECDSA.recover only accepts 27/28. Any other value is left
85
+ // as-is so a genuinely malformed signature still fails on L1 rather than being silently rewritten.
86
+ signaturesOrAddresses[dataIndex] = signature.v === 0 || signature.v === 1 ? signature.v + 27 : signature.v;
78
87
  dataIndex++;
79
88
  // Pack r (32 bytes)
80
89
  const rBytes = Buffer.from(signature.r.slice(2), 'hex');
@@ -96,6 +105,9 @@ export class CommitteeAttestationsAndSigners {
96
105
  signaturesOrAddresses: `0x${Buffer.from(signaturesOrAddresses).toString('hex')}`
97
106
  };
98
107
  }
108
+ getPackedAttestations() {
109
+ return CommitteeAttestationsAndSigners.packAttestations(this.attestations);
110
+ }
99
111
  }
100
112
  /**
101
113
  * Malicious extension of CommitteeAttestationsAndSigners that keeps separate attestations and
@@ -104,10 +116,46 @@ export class CommitteeAttestationsAndSigners {
104
116
  * with an invalid set of attestation signatures.
105
117
  */ export class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
106
118
  signers;
107
- constructor(attestations, signers){
108
- super(attestations), this.signers = signers;
119
+ constructor(attestations, signers, signatureContext){
120
+ super(attestations, signatureContext), this.signers = signers;
109
121
  }
110
122
  getSigners() {
111
123
  return this.signers;
112
124
  }
113
125
  }
126
+ /**
127
+ * Malicious extension of CommitteeAttestationsAndSigners that rewrites every non-proposer signature slot's
128
+ * recovery byte to yParity form (v ∈ {0, 1}) in the packed output, after the honest `packAttestations` has
129
+ * already canonicalized it to v ∈ {27, 28}. Models a malicious selected proposer that hand-crafts
130
+ * `propose()` calldata L1 accepts but no honest node can byte-replay: each rewritten signature still
131
+ * recovers to the same member (r, s and the recovery parity are preserved), the bitmap bits stay set, and
132
+ * `getSigners()` stays consistent, so `propose()` does not revert `SignersSizeMismatch` -- yet the
133
+ * checkpoint can never be proven (`ECDSA.recover` rejects v ∉ {27, 28}). The proposer's own slot is left
134
+ * canonical so L1 `verifyProposer` (which recovers that slot) still accepts the checkpoint. For testing only.
135
+ */ export class MaliciousYParityCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
136
+ proposerIndex;
137
+ constructor(attestations, /** Committee index of the proposer's own slot, left canonical so `propose()` passes `verifyProposer`. */ proposerIndex, signatureContext){
138
+ super(attestations, signatureContext), this.proposerIndex = proposerIndex;
139
+ }
140
+ getPackedAttestations() {
141
+ const packed = super.getPackedAttestations();
142
+ const data = hexToBuffer(packed.signaturesOrAddresses);
143
+ // Walk the packed byte-vector and rewrite every non-proposer signed slot's v-byte to yParity form. A
144
+ // signed slot occupies 65 bytes (v, r, s); an empty slot occupies 20 bytes (address only).
145
+ let offset = 0;
146
+ for(let i = 0; i < this.attestations.length; i++){
147
+ const isSigned = !this.attestations[i].signature.isEmpty();
148
+ if (isSigned && i !== this.proposerIndex) {
149
+ // `packAttestations` canonicalized v to 27/28; rewrite back to the equivalent yParity byte (0/1),
150
+ // preserving the recovery parity so the signature still recovers to the same member.
151
+ const v = data[offset];
152
+ data[offset] = v >= 27 ? v - 27 : v;
153
+ }
154
+ offset += isSigned ? 65 : 20;
155
+ }
156
+ return {
157
+ signatureIndices: packed.signatureIndices,
158
+ signaturesOrAddresses: bufferToHex(data)
159
+ };
160
+ }
161
+ }
@@ -8,19 +8,13 @@ export declare class CommitteeAttestation {
8
8
  readonly address: EthAddress;
9
9
  readonly signature: Signature;
10
10
  constructor(address: EthAddress, signature: Signature);
11
- static get schema(): z.ZodEffects<z.ZodObject<{
12
- address: z.ZodType<EthAddress, any, string>;
13
- signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
14
- }, "strip", z.ZodTypeAny, {
11
+ static get schema(): z.ZodPipe<z.ZodObject<{
12
+ address: z.ZodType<EthAddress, string, z.core.$ZodTypeInternals<EthAddress, string>>;
13
+ signature: z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<Signature, `0x${string}`>>;
14
+ }, z.core.$strip>, z.ZodTransform<CommitteeAttestation, {
15
15
  address: EthAddress;
16
16
  signature: Signature;
17
- }, {
18
- address: string;
19
- signature: string;
20
- }>, CommitteeAttestation, {
21
- address: string;
22
- signature: string;
23
- }>;
17
+ }>>;
24
18
  static fromAddress(address: EthAddress): CommitteeAttestation;
25
19
  static fromAddressAndSignature(address: EthAddress, signature: Signature): CommitteeAttestation;
26
20
  static fromSignature(signature: Signature): CommitteeAttestation;
@@ -33,4 +27,4 @@ export declare class CommitteeAttestation {
33
27
  equals(other: CommitteeAttestation): boolean;
34
28
  toViem(): ViemCommitteeAttestation;
35
29
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0dGVlX2F0dGVzdGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svcHJvcG9zYWwvY29tbWl0dGVlX2F0dGVzdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUVqQyxxQkFBYSxvQkFBb0I7YUFFYixPQUFPLEVBQUUsVUFBVTthQUNuQixTQUFTLEVBQUUsU0FBUztJQUZ0QyxZQUNrQixPQUFPLEVBQUUsVUFBVSxFQUNuQixTQUFTLEVBQUUsU0FBUyxFQUNsQztJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7T0FPaEI7SUFHRCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsb0JBQW9CLENBRTVEO0lBR0QsTUFBTSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRyxvQkFBb0IsQ0FFOUY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLEdBQUcsb0JBQW9CLENBRS9EO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEdBQUcsb0JBQW9CLENBRXBFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxvQkFBb0IsQ0FLckU7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLG9CQUFvQixDQUdwQztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksb0JBQW9CLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxvQkFBb0IsRUFBRSxDQTZDbEc7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUUzQztJQUVELE1BQU0sSUFBSSx3QkFBd0IsQ0FLakM7Q0FDRiJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0dGVlX2F0dGVzdGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svcHJvcG9zYWwvY29tbWl0dGVlX2F0dGVzdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUVqQyxxQkFBYSxvQkFBb0I7YUFFYixPQUFPLEVBQUUsVUFBVTthQUNuQixTQUFTLEVBQUUsU0FBUztJQUZ0QyxZQUNrQixPQUFPLEVBQUUsVUFBVSxFQUNuQixTQUFTLEVBQUUsU0FBUyxFQUNsQztJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7UUFPaEI7SUFHRCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLEdBQUcsb0JBQW9CLENBRTVEO0lBR0QsTUFBTSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRyxvQkFBb0IsQ0FFOUY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLEdBQUcsb0JBQW9CLENBRS9EO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEdBQUcsb0JBQW9CLENBRXBFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxvQkFBb0IsQ0FLckU7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLG9CQUFvQixDQUdwQztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksb0JBQW9CLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxvQkFBb0IsRUFBRSxDQTZDbEc7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUUzQztJQUVELE1BQU0sSUFBSSx3QkFBd0IsQ0FLakM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"committee_attestation.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/committee_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAEjC,qBAAa,oBAAoB;aAEb,OAAO,EAAE,UAAU;aACnB,SAAS,EAAE,SAAS;IAFtC,YACkB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,EAClC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAGD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB,CAE5D;IAGD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAE9F;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAE/D;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,oBAAoB,CAEpE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,oBAAoB,CAKrE;IAED,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAGpC;IAED,MAAM,CAAC,KAAK,IAAI,oBAAoB,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA6ClG;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAE3C;IAED,MAAM,IAAI,wBAAwB,CAKjC;CACF"}
1
+ {"version":3,"file":"committee_attestation.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/committee_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAEjC,qBAAa,oBAAoB;aAEb,OAAO,EAAE,UAAU;aACnB,SAAS,EAAE,SAAS;IAFtC,YACkB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,EAClC;IAEJ,MAAM,KAAK,MAAM;;;;;;QAOhB;IAGD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB,CAE5D;IAGD,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAE9F;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAE/D;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,oBAAoB,CAEpE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,oBAAoB,CAKrE;IAED,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAGpC;IAED,MAAM,CAAC,KAAK,IAAI,oBAAoB,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA6ClG;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAE3C;IAED,MAAM,IAAI,wBAAwB,CAKjC;CACF"}
@@ -1,3 +1,3 @@
1
1
  import type { L2TipsStore } from '../l2_block_stream/index.js';
2
2
  export declare function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZV90ZXN0X3N1aXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svdGVzdC9sMl90aXBzX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0Qsd0JBQWdCLGVBQWUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBdWdCeEUifQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZV90ZXN0X3N1aXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svdGVzdC9sMl90aXBzX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELHdCQUFnQixlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQSt2QnhFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"l2_tips_store_test_suite.d.ts","sourceRoot":"","sources":["../../../src/block/test/l2_tips_store_test_suite.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,QAugBxE"}
1
+ {"version":3,"file":"l2_tips_store_test_suite.d.ts","sourceRoot":"","sources":["../../../src/block/test/l2_tips_store_test_suite.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,QA+vBxE"}