@aztec/stdlib 0.0.1-commit.4d3c002 → 0.0.1-commit.4d9804df

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