@aztec/stdlib 5.0.0-private.20260319 → 6.0.0-nightly.20260603

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 (875) hide show
  1. package/dest/abi/abi.d.ts +142 -1081
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +41 -18
  4. package/dest/abi/authorization_selector.d.ts +4 -7
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/contract_artifact.d.ts +1 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +14 -7
  12. package/dest/abi/decoder.d.ts +5 -44
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +12 -67
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +32 -6
  18. package/dest/abi/event_selector.d.ts +4 -7
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +7 -25
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_selector.d.ts +3 -6
  23. package/dest/abi/function_selector.d.ts.map +1 -1
  24. package/dest/abi/function_selector.js +2 -4
  25. package/dest/abi/function_signature_decoder.d.ts +43 -0
  26. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  27. package/dest/abi/function_signature_decoder.js +66 -0
  28. package/dest/abi/index.d.ts +2 -1
  29. package/dest/abi/index.d.ts.map +1 -1
  30. package/dest/abi/index.js +1 -0
  31. package/dest/abi/note_selector.d.ts +4 -7
  32. package/dest/abi/note_selector.d.ts.map +1 -1
  33. package/dest/abi/note_selector.js +1 -3
  34. package/dest/abi/selector.d.ts +2 -2
  35. package/dest/abi/selector.d.ts.map +1 -1
  36. package/dest/abi/selector.js +1 -1
  37. package/dest/abi/utils.d.ts +1 -1
  38. package/dest/abi/utils.d.ts.map +1 -1
  39. package/dest/abi/utils.js +1 -1
  40. package/dest/auth_witness/auth_witness.d.ts +2 -2
  41. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  42. package/dest/avm/avm.d.ts +1756 -10463
  43. package/dest/avm/avm.d.ts.map +1 -1
  44. package/dest/avm/avm.js +6 -3
  45. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  46. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  47. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  48. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  49. package/dest/avm/avm_proving_request.d.ts +653 -5446
  50. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  51. package/dest/avm/message_pack.js +12 -3
  52. package/dest/avm/public_data_write.d.ts +6 -12
  53. package/dest/avm/public_data_write.d.ts.map +1 -1
  54. package/dest/avm/revert_code.d.ts +5 -21
  55. package/dest/avm/revert_code.d.ts.map +1 -1
  56. package/dest/avm/revert_code.js +12 -30
  57. package/dest/aztec-address/index.d.ts +8 -8
  58. package/dest/aztec-address/index.d.ts.map +1 -1
  59. package/dest/aztec-address/index.js +9 -6
  60. package/dest/block/attestation_info.d.ts +3 -2
  61. package/dest/block/attestation_info.d.ts.map +1 -1
  62. package/dest/block/attestation_info.js +7 -5
  63. package/dest/block/block_data.d.ts +13 -38
  64. package/dest/block/block_data.d.ts.map +1 -1
  65. package/dest/block/block_data.js +2 -2
  66. package/dest/block/block_hash.d.ts +11 -10
  67. package/dest/block/block_hash.d.ts.map +1 -1
  68. package/dest/block/block_hash.js +10 -9
  69. package/dest/block/block_parameter.d.ts +37 -4
  70. package/dest/block/block_parameter.d.ts.map +1 -1
  71. package/dest/block/block_parameter.js +53 -2
  72. package/dest/block/in_block.d.ts +5 -24
  73. package/dest/block/in_block.d.ts.map +1 -1
  74. package/dest/block/index.d.ts +1 -2
  75. package/dest/block/index.d.ts.map +1 -1
  76. package/dest/block/index.js +0 -1
  77. package/dest/block/l2_block.d.ts +13 -41
  78. package/dest/block/l2_block.d.ts.map +1 -1
  79. package/dest/block/l2_block_info.d.ts +10 -29
  80. package/dest/block/l2_block_info.d.ts.map +1 -1
  81. package/dest/block/l2_block_info.js +6 -5
  82. package/dest/block/l2_block_source.d.ts +199 -352
  83. package/dest/block/l2_block_source.d.ts.map +1 -1
  84. package/dest/block/l2_block_source.js +67 -1
  85. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  86. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  88. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  91. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  94. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  95. package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
  96. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  97. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  98. package/dest/block/proposal/attestations_and_signers.js +26 -18
  99. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  100. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +5 -4
  104. package/dest/checkpoint/checkpoint.d.ts +30 -96
  105. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  106. package/dest/checkpoint/checkpoint.js +9 -1
  107. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  108. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint_data.js +12 -0
  110. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  111. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  112. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  115. package/dest/checkpoint/digest.d.ts +18 -0
  116. package/dest/checkpoint/digest.d.ts.map +1 -0
  117. package/dest/checkpoint/digest.js +12 -0
  118. package/dest/checkpoint/index.d.ts +4 -1
  119. package/dest/checkpoint/index.d.ts.map +1 -1
  120. package/dest/checkpoint/index.js +3 -0
  121. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  124. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  125. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  126. package/dest/config/chain-config.d.ts +4 -9
  127. package/dest/config/chain-config.d.ts.map +1 -1
  128. package/dest/config/chain-config.js +13 -12
  129. package/dest/config/pipelining-config.d.ts +2 -6
  130. package/dest/config/pipelining-config.d.ts.map +1 -1
  131. package/dest/config/sequencer-config.d.ts +5 -3
  132. package/dest/config/sequencer-config.d.ts.map +1 -1
  133. package/dest/config/sequencer-config.js +18 -4
  134. package/dest/contract/complete_address.d.ts +3 -2
  135. package/dest/contract/complete_address.d.ts.map +1 -1
  136. package/dest/contract/complete_address.js +6 -2
  137. package/dest/contract/contract_address.d.ts +5 -5
  138. package/dest/contract/contract_address.d.ts.map +1 -1
  139. package/dest/contract/contract_address.js +5 -4
  140. package/dest/contract/contract_deployment_data.d.ts +15 -61
  141. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  142. package/dest/contract/contract_instance.d.ts +4 -2
  143. package/dest/contract/contract_instance.d.ts.map +1 -1
  144. package/dest/contract/contract_instance.js +10 -3
  145. package/dest/contract/index.d.ts +1 -3
  146. package/dest/contract/index.d.ts.map +1 -1
  147. package/dest/contract/index.js +0 -2
  148. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  149. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  150. package/dest/contract/interfaces/contract_class.js +1 -28
  151. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  152. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  153. package/dest/contract/interfaces/contract_instance.js +4 -2
  154. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  155. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  156. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  157. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  158. package/dest/contract/private_function.d.ts +1 -1
  159. package/dest/contract/private_function.d.ts.map +1 -1
  160. package/dest/contract/private_function.js +2 -4
  161. package/dest/database-version/database_version.d.ts +5 -11
  162. package/dest/database-version/database_version.d.ts.map +1 -1
  163. package/dest/database-version/version_manager.d.ts +6 -2
  164. package/dest/database-version/version_manager.d.ts.map +1 -1
  165. package/dest/database-version/version_manager.js +12 -1
  166. package/dest/epoch-helpers/index.d.ts +10 -22
  167. package/dest/epoch-helpers/index.d.ts.map +1 -1
  168. package/dest/epoch-helpers/index.js +12 -0
  169. package/dest/file-store/factory.d.ts +4 -3
  170. package/dest/file-store/factory.d.ts.map +1 -1
  171. package/dest/file-store/factory.js +2 -2
  172. package/dest/file-store/http.d.ts +9 -2
  173. package/dest/file-store/http.d.ts.map +1 -1
  174. package/dest/file-store/http.js +20 -9
  175. package/dest/file-store/index.d.ts +2 -1
  176. package/dest/file-store/index.d.ts.map +1 -1
  177. package/dest/gas/fee_math.d.ts +49 -0
  178. package/dest/gas/fee_math.d.ts.map +1 -0
  179. package/dest/gas/fee_math.js +80 -0
  180. package/dest/gas/gas.d.ts +9 -14
  181. package/dest/gas/gas.d.ts.map +1 -1
  182. package/dest/gas/gas.js +6 -3
  183. package/dest/gas/gas_fees.d.ts +13 -14
  184. package/dest/gas/gas_fees.d.ts.map +1 -1
  185. package/dest/gas/gas_fees.js +17 -4
  186. package/dest/gas/gas_settings.d.ts +66 -86
  187. package/dest/gas/gas_settings.d.ts.map +1 -1
  188. package/dest/gas/gas_settings.js +56 -9
  189. package/dest/gas/index.d.ts +2 -1
  190. package/dest/gas/index.d.ts.map +1 -1
  191. package/dest/gas/index.js +1 -0
  192. package/dest/ha-signing/config.d.ts +11 -75
  193. package/dest/ha-signing/config.d.ts.map +1 -1
  194. package/dest/ha-signing/config.js +9 -18
  195. package/dest/ha-signing/index.d.ts +2 -2
  196. package/dest/ha-signing/index.d.ts.map +1 -1
  197. package/dest/ha-signing/index.js +1 -1
  198. package/dest/ha-signing/local_config.d.ts +3 -34
  199. package/dest/ha-signing/local_config.d.ts.map +1 -1
  200. package/dest/ha-signing/local_config.js +2 -2
  201. package/dest/ha-signing/types.d.ts +37 -32
  202. package/dest/ha-signing/types.d.ts.map +1 -1
  203. package/dest/ha-signing/types.js +13 -6
  204. package/dest/hash/hash.d.ts +19 -1
  205. package/dest/hash/hash.d.ts.map +1 -1
  206. package/dest/hash/hash.js +39 -2
  207. package/dest/interfaces/allowed_element.d.ts +4 -28
  208. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  209. package/dest/interfaces/api_limit.d.ts +1 -1
  210. package/dest/interfaces/api_limit.js +1 -1
  211. package/dest/interfaces/archiver.d.ts +22 -32
  212. package/dest/interfaces/archiver.d.ts.map +1 -1
  213. package/dest/interfaces/archiver.js +208 -69
  214. package/dest/interfaces/aztec-node-admin.d.ts +65 -303
  215. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  216. package/dest/interfaces/aztec-node-admin.js +59 -16
  217. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  218. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  219. package/dest/interfaces/aztec-node-debug.js +21 -0
  220. package/dest/interfaces/aztec-node.d.ts +79 -102
  221. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  222. package/dest/interfaces/aztec-node.js +296 -69
  223. package/dest/interfaces/block-builder.d.ts +3 -1
  224. package/dest/interfaces/block-builder.d.ts.map +1 -1
  225. package/dest/interfaces/block_response.d.ts +90 -0
  226. package/dest/interfaces/block_response.d.ts.map +1 -0
  227. package/dest/interfaces/block_response.js +30 -0
  228. package/dest/interfaces/chain_tips.d.ts +50 -0
  229. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  230. package/dest/interfaces/chain_tips.js +11 -0
  231. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  232. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  233. package/dest/interfaces/checkpoint_parameter.js +18 -0
  234. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  235. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  236. package/dest/interfaces/checkpoint_response.js +26 -0
  237. package/dest/interfaces/client.d.ts +8 -2
  238. package/dest/interfaces/client.d.ts.map +1 -1
  239. package/dest/interfaces/client.js +7 -1
  240. package/dest/interfaces/configs.d.ts +41 -130
  241. package/dest/interfaces/configs.d.ts.map +1 -1
  242. package/dest/interfaces/configs.js +9 -1
  243. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  244. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  245. package/dest/interfaces/l1_publish_info.js +26 -0
  246. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  247. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  248. package/dest/interfaces/l2_logs_source.js +5 -0
  249. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  250. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  251. package/dest/interfaces/p2p-bootstrap.js +8 -2
  252. package/dest/interfaces/p2p.d.ts +15 -5
  253. package/dest/interfaces/p2p.d.ts.map +1 -1
  254. package/dest/interfaces/p2p.js +28 -5
  255. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  256. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  257. package/dest/interfaces/prover-agent.d.ts +5 -23
  258. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  259. package/dest/interfaces/prover-agent.js +4 -1
  260. package/dest/interfaces/prover-client.d.ts +6 -27
  261. package/dest/interfaces/prover-client.d.ts.map +1 -1
  262. package/dest/interfaces/prover-client.js +0 -3
  263. package/dest/interfaces/prover-node.js +22 -8
  264. package/dest/interfaces/proving-job-source.js +24 -4
  265. package/dest/interfaces/proving-job.d.ts +742 -5793
  266. package/dest/interfaces/proving-job.d.ts.map +1 -1
  267. package/dest/interfaces/proving-job.js +1 -1
  268. package/dest/interfaces/public_storage_override.d.ts +22 -0
  269. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  270. package/dest/interfaces/public_storage_override.js +7 -0
  271. package/dest/interfaces/server.d.ts +6 -1
  272. package/dest/interfaces/server.d.ts.map +1 -1
  273. package/dest/interfaces/server.js +5 -0
  274. package/dest/interfaces/slasher.d.ts +25 -65
  275. package/dest/interfaces/slasher.d.ts.map +1 -1
  276. package/dest/interfaces/slasher.js +8 -4
  277. package/dest/interfaces/tx_provider.d.ts +6 -1
  278. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  279. package/dest/interfaces/validator.d.ts +48 -248
  280. package/dest/interfaces/validator.d.ts.map +1 -1
  281. package/dest/interfaces/validator.js +5 -1
  282. package/dest/interfaces/world_state.d.ts +2 -2
  283. package/dest/interfaces/world_state.d.ts.map +1 -1
  284. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  285. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  286. package/dest/kernel/hints/key_validation_request.js +20 -18
  287. package/dest/kernel/index.d.ts +5 -1
  288. package/dest/kernel/index.d.ts.map +1 -1
  289. package/dest/kernel/index.js +4 -0
  290. package/dest/kernel/log_hash.d.ts +6 -2
  291. package/dest/kernel/log_hash.d.ts.map +1 -1
  292. package/dest/kernel/log_hash.js +21 -9
  293. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  294. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  295. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  296. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  297. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  298. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  299. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  300. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  301. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  302. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  303. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  304. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  305. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  306. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  307. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  308. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  309. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  310. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  311. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  312. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  313. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  314. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  315. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  316. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  317. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  318. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  319. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  320. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  321. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  322. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  323. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  324. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  325. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  326. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  327. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  328. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  329. package/dest/kernel/public_call_request.d.ts +15 -30
  330. package/dest/kernel/public_call_request.d.ts.map +1 -1
  331. package/dest/kernel/public_call_request.js +16 -7
  332. package/dest/keys/derivation.d.ts +6 -2
  333. package/dest/keys/derivation.d.ts.map +1 -1
  334. package/dest/keys/derivation.js +16 -6
  335. package/dest/keys/public_key.d.ts +22 -3
  336. package/dest/keys/public_key.d.ts.map +1 -1
  337. package/dest/keys/public_key.js +20 -1
  338. package/dest/keys/public_keys.d.ts +55 -82
  339. package/dest/keys/public_keys.d.ts.map +1 -1
  340. package/dest/keys/public_keys.js +102 -74
  341. package/dest/kv-store/config.d.ts +3 -6
  342. package/dest/kv-store/config.d.ts.map +1 -1
  343. package/dest/kv-store/config.js +2 -7
  344. package/dest/l1-contracts/index.d.ts +2 -2
  345. package/dest/l1-contracts/index.d.ts.map +1 -1
  346. package/dest/l1-contracts/index.js +1 -1
  347. package/dest/logs/app_tagging_secret.d.ts +46 -0
  348. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  349. package/dest/logs/app_tagging_secret.js +109 -0
  350. package/dest/logs/app_tagging_secret_kind.d.ts +6 -0
  351. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  352. package/dest/logs/app_tagging_secret_kind.js +4 -0
  353. package/dest/logs/contract_class_log.d.ts +16 -34
  354. package/dest/logs/contract_class_log.d.ts.map +1 -1
  355. package/dest/logs/contract_class_log.js +11 -9
  356. package/dest/logs/index.d.ts +7 -7
  357. package/dest/logs/index.d.ts.map +1 -1
  358. package/dest/logs/index.js +6 -6
  359. package/dest/logs/log_cursor.d.ts +51 -0
  360. package/dest/logs/log_cursor.d.ts.map +1 -0
  361. package/dest/logs/log_cursor.js +82 -0
  362. package/dest/logs/log_result.d.ts +54 -0
  363. package/dest/logs/log_result.d.ts.map +1 -0
  364. package/dest/logs/log_result.js +56 -0
  365. package/dest/logs/logs_query.d.ts +82 -0
  366. package/dest/logs/logs_query.d.ts.map +1 -0
  367. package/dest/logs/logs_query.js +50 -0
  368. package/dest/logs/message_context.d.ts +6 -8
  369. package/dest/logs/message_context.d.ts.map +1 -1
  370. package/dest/logs/message_context.js +27 -9
  371. package/dest/logs/pending_tagged_log.d.ts +2 -3
  372. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  373. package/dest/logs/pending_tagged_log.js +2 -2
  374. package/dest/logs/pre_tag.d.ts +11 -24
  375. package/dest/logs/pre_tag.d.ts.map +1 -1
  376. package/dest/logs/pre_tag.js +2 -2
  377. package/dest/logs/private_log.d.ts +7 -12
  378. package/dest/logs/private_log.d.ts.map +1 -1
  379. package/dest/logs/private_log.js +6 -3
  380. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  381. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  382. package/dest/logs/query_all_logs_by_tags.js +64 -0
  383. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  384. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  385. package/dest/logs/shared_secret_derivation.js +15 -9
  386. package/dest/logs/siloed_tag.d.ts +8 -7
  387. package/dest/logs/siloed_tag.d.ts.map +1 -1
  388. package/dest/logs/siloed_tag.js +13 -3
  389. package/dest/logs/tag.d.ts +5 -6
  390. package/dest/logs/tag.d.ts.map +1 -1
  391. package/dest/logs/tag.js +4 -0
  392. package/dest/logs/tagging_index_range.d.ts +13 -31
  393. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  394. package/dest/logs/tagging_index_range.js +2 -2
  395. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  396. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  397. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  398. package/dest/messaging/index.d.ts +2 -1
  399. package/dest/messaging/index.d.ts.map +1 -1
  400. package/dest/messaging/index.js +1 -0
  401. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  402. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  403. package/dest/messaging/l1_to_l2_message.js +11 -13
  404. package/dest/messaging/l2_to_l1_membership.d.ts +35 -5
  405. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  406. package/dest/messaging/l2_to_l1_membership.js +52 -7
  407. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  408. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  409. package/dest/messaging/l2_to_l1_message.js +21 -12
  410. package/dest/noir/index.d.ts +3 -1
  411. package/dest/noir/index.d.ts.map +1 -1
  412. package/dest/note/note.d.ts +2 -2
  413. package/dest/note/note.d.ts.map +1 -1
  414. package/dest/note/note_dao.d.ts +1 -1
  415. package/dest/note/note_dao.d.ts.map +1 -1
  416. package/dest/note/note_dao.js +1 -4
  417. package/dest/p2p/block_proposal.d.ts +31 -14
  418. package/dest/p2p/block_proposal.d.ts.map +1 -1
  419. package/dest/p2p/block_proposal.js +57 -39
  420. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  421. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  422. package/dest/p2p/checkpoint_attestation.js +23 -24
  423. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  424. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  425. package/dest/p2p/checkpoint_proposal.js +59 -51
  426. package/dest/p2p/consensus_payload.d.ts +26 -20
  427. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  428. package/dest/p2p/consensus_payload.js +38 -19
  429. package/dest/p2p/gossipable.d.ts +4 -4
  430. package/dest/p2p/gossipable.d.ts.map +1 -1
  431. package/dest/p2p/signature_utils.d.ts +28 -19
  432. package/dest/p2p/signature_utils.d.ts.map +1 -1
  433. package/dest/p2p/signature_utils.js +118 -21
  434. package/dest/p2p/signed_txs.d.ts +15 -13
  435. package/dest/p2p/signed_txs.d.ts.map +1 -1
  436. package/dest/p2p/signed_txs.js +26 -24
  437. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  438. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  439. package/dest/parity/parity_base_private_inputs.js +7 -5
  440. package/dest/parity/parity_public_inputs.d.ts +8 -4
  441. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  442. package/dest/parity/parity_public_inputs.js +6 -3
  443. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  444. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  445. package/dest/proofs/chonk_proof.d.ts +57 -7
  446. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  447. package/dest/proofs/chonk_proof.js +112 -15
  448. package/dest/proofs/recursive_proof.d.ts +2 -2
  449. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  450. package/dest/rollup/block_headers_hash.d.ts +1 -1
  451. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  452. package/dest/rollup/block_headers_hash.js +8 -2
  453. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  454. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  455. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  456. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  457. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  458. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  459. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  460. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  461. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  462. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  463. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  464. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  465. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  466. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  467. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  468. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  469. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  470. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  471. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  472. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  473. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  474. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  475. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  476. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  477. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  478. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  479. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  480. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  481. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  482. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  483. package/dest/schemas/schemas.d.ts +32 -78
  484. package/dest/schemas/schemas.d.ts.map +1 -1
  485. package/dest/schemas/schemas.js +2 -2
  486. package/dest/slashing/helpers.d.ts +2 -2
  487. package/dest/slashing/helpers.d.ts.map +1 -1
  488. package/dest/slashing/helpers.js +10 -7
  489. package/dest/slashing/index.d.ts +2 -3
  490. package/dest/slashing/index.d.ts.map +1 -1
  491. package/dest/slashing/index.js +1 -2
  492. package/dest/slashing/serialization.d.ts +2 -6
  493. package/dest/slashing/serialization.d.ts.map +1 -1
  494. package/dest/slashing/serialization.js +0 -60
  495. package/dest/slashing/types.d.ts +18 -112
  496. package/dest/slashing/types.d.ts.map +1 -1
  497. package/dest/slashing/types.js +16 -24
  498. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  499. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  500. package/dest/slashing/{tally.js → votes.js} +1 -1
  501. package/dest/snapshots/types.d.ts +15 -78
  502. package/dest/snapshots/types.d.ts.map +1 -1
  503. package/dest/stats/stats.d.ts +2 -2
  504. package/dest/stats/stats.d.ts.map +1 -1
  505. package/dest/tests/factories.d.ts +25 -32
  506. package/dest/tests/factories.d.ts.map +1 -1
  507. package/dest/tests/factories.js +82 -82
  508. package/dest/tests/mocks.d.ts +8 -5
  509. package/dest/tests/mocks.d.ts.map +1 -1
  510. package/dest/tests/mocks.js +42 -54
  511. package/dest/timetable/index.d.ts +51 -1
  512. package/dest/timetable/index.d.ts.map +1 -1
  513. package/dest/timetable/index.js +218 -14
  514. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  515. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  516. package/dest/trees/append_only_tree_snapshot.js +6 -3
  517. package/dest/trees/nullifier_leaf.d.ts +19 -42
  518. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  519. package/dest/trees/nullifier_leaf.js +3 -0
  520. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  521. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  522. package/dest/trees/nullifier_membership_witness.js +2 -14
  523. package/dest/trees/public_data_leaf.d.ts +21 -53
  524. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  525. package/dest/trees/public_data_witness.d.ts +16 -58
  526. package/dest/trees/public_data_witness.d.ts.map +1 -1
  527. package/dest/tx/block_header.d.ts +5 -4
  528. package/dest/tx/block_header.d.ts.map +1 -1
  529. package/dest/tx/block_header.js +7 -4
  530. package/dest/tx/call_context.d.ts +4 -14
  531. package/dest/tx/call_context.d.ts.map +1 -1
  532. package/dest/tx/capsule.d.ts +7 -3
  533. package/dest/tx/capsule.d.ts.map +1 -1
  534. package/dest/tx/capsule.js +9 -3
  535. package/dest/tx/fee_provider.d.ts +10 -0
  536. package/dest/tx/fee_provider.d.ts.map +1 -0
  537. package/dest/tx/fee_provider.js +1 -0
  538. package/dest/tx/function_data.d.ts +4 -10
  539. package/dest/tx/function_data.d.ts.map +1 -1
  540. package/dest/tx/global_variable_builder.d.ts +3 -4
  541. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  542. package/dest/tx/global_variables.d.ts +16 -49
  543. package/dest/tx/global_variables.d.ts.map +1 -1
  544. package/dest/tx/global_variables.js +8 -12
  545. package/dest/tx/hashed_values.d.ts +4 -3
  546. package/dest/tx/hashed_values.d.ts.map +1 -1
  547. package/dest/tx/hashed_values.js +6 -3
  548. package/dest/tx/in_tx.d.ts +5 -17
  549. package/dest/tx/in_tx.d.ts.map +1 -1
  550. package/dest/tx/index.d.ts +2 -1
  551. package/dest/tx/index.d.ts.map +1 -1
  552. package/dest/tx/index.js +1 -0
  553. package/dest/tx/indexed_tx_effect.d.ts +4 -18
  554. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  555. package/dest/tx/indexed_tx_effect.js +1 -2
  556. package/dest/tx/partial_state_reference.d.ts +22 -65
  557. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  558. package/dest/tx/partial_state_reference.js +6 -3
  559. package/dest/tx/private_execution_result.d.ts +6 -16
  560. package/dest/tx/private_execution_result.d.ts.map +1 -1
  561. package/dest/tx/profiling.d.ts +54 -352
  562. package/dest/tx/profiling.d.ts.map +1 -1
  563. package/dest/tx/profiling.js +4 -4
  564. package/dest/tx/protocol_contracts.d.ts +5 -9
  565. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  566. package/dest/tx/proven_tx.d.ts +30 -74
  567. package/dest/tx/proven_tx.d.ts.map +1 -1
  568. package/dest/tx/proven_tx.js +6 -0
  569. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  570. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  571. package/dest/tx/public_call_request_with_calldata.js +6 -3
  572. package/dest/tx/simulated_tx.d.ts +64 -1143
  573. package/dest/tx/simulated_tx.d.ts.map +1 -1
  574. package/dest/tx/simulated_tx.js +13 -11
  575. package/dest/tx/state_reference.d.ts +30 -117
  576. package/dest/tx/state_reference.d.ts.map +1 -1
  577. package/dest/tx/state_reference.js +6 -4
  578. package/dest/tx/tree_snapshots.d.ts +27 -84
  579. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  580. package/dest/tx/tree_snapshots.js +6 -4
  581. package/dest/tx/tx.d.ts +7 -13
  582. package/dest/tx/tx.d.ts.map +1 -1
  583. package/dest/tx/tx.js +22 -23
  584. package/dest/tx/tx_constant_data.d.ts +4 -3
  585. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  586. package/dest/tx/tx_constant_data.js +6 -3
  587. package/dest/tx/tx_context.d.ts +32 -131
  588. package/dest/tx/tx_context.d.ts.map +1 -1
  589. package/dest/tx/tx_context.js +6 -6
  590. package/dest/tx/tx_hash.d.ts +6 -4
  591. package/dest/tx/tx_hash.d.ts.map +1 -1
  592. package/dest/tx/tx_hash.js +13 -5
  593. package/dest/tx/tx_receipt.d.ts +2 -4
  594. package/dest/tx/tx_receipt.d.ts.map +1 -1
  595. package/dest/tx/tx_receipt.js +2 -15
  596. package/dest/tx/validator/error_texts.d.ts +5 -1
  597. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  598. package/dest/tx/validator/error_texts.js +6 -0
  599. package/dest/tx/validator/tx_validator.d.ts +5 -27
  600. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  601. package/dest/tx/validator/tx_validator.js +0 -4
  602. package/dest/types/shared.d.ts +4 -12
  603. package/dest/types/shared.d.ts.map +1 -1
  604. package/dest/types/shared.js +6 -12
  605. package/dest/update-checker/dev_version.d.ts +3 -0
  606. package/dest/update-checker/dev_version.d.ts.map +1 -0
  607. package/dest/update-checker/dev_version.js +1 -0
  608. package/dest/update-checker/index.d.ts +2 -1
  609. package/dest/update-checker/index.d.ts.map +1 -1
  610. package/dest/update-checker/index.js +1 -0
  611. package/dest/update-checker/package_version.d.ts +6 -3
  612. package/dest/update-checker/package_version.d.ts.map +1 -1
  613. package/dest/update-checker/package_version.js +8 -19
  614. package/dest/validators/schemas.d.ts +147 -614
  615. package/dest/validators/schemas.d.ts.map +1 -1
  616. package/dest/validators/schemas.js +6 -4
  617. package/dest/validators/types.d.ts +20 -3
  618. package/dest/validators/types.d.ts.map +1 -1
  619. package/dest/versioning/versioning.js +1 -1
  620. package/dest/vks/verification_key.d.ts +4 -139
  621. package/dest/vks/verification_key.d.ts.map +1 -1
  622. package/dest/vks/verification_key.js +5 -126
  623. package/dest/world-state/genesis_data.d.ts +13 -0
  624. package/dest/world-state/genesis_data.d.ts.map +1 -0
  625. package/dest/world-state/genesis_data.js +7 -0
  626. package/dest/world-state/index.d.ts +2 -1
  627. package/dest/world-state/index.d.ts.map +1 -1
  628. package/dest/world-state/index.js +1 -0
  629. package/dest/world-state/world_state_revision.d.ts +15 -26
  630. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  631. package/dest/world-state/world_state_revision.js +7 -1
  632. package/package.json +12 -11
  633. package/src/abi/abi.ts +78 -21
  634. package/src/abi/authorization_selector.ts +2 -8
  635. package/src/abi/buffer.ts +25 -4
  636. package/src/abi/contract_artifact.ts +11 -6
  637. package/src/abi/decoder.ts +23 -78
  638. package/src/abi/encoder.ts +42 -6
  639. package/src/abi/event_selector.ts +2 -8
  640. package/src/abi/function_selector.ts +4 -13
  641. package/src/abi/function_signature_decoder.ts +77 -0
  642. package/src/abi/index.ts +1 -0
  643. package/src/abi/note_selector.ts +3 -12
  644. package/src/abi/selector.ts +1 -1
  645. package/src/abi/utils.ts +6 -4
  646. package/src/avm/avm.ts +5 -0
  647. package/src/avm/message_pack.ts +12 -3
  648. package/src/avm/revert_code.ts +19 -39
  649. package/src/aztec-address/index.ts +15 -12
  650. package/src/block/attestation_info.ts +11 -11
  651. package/src/block/block_data.ts +3 -4
  652. package/src/block/block_hash.ts +21 -14
  653. package/src/block/block_parameter.ts +72 -4
  654. package/src/block/index.ts +0 -1
  655. package/src/block/l2_block_info.ts +8 -6
  656. package/src/block/l2_block_source.ts +194 -142
  657. package/src/block/l2_block_stream/interfaces.ts +6 -2
  658. package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
  659. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  660. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  661. package/src/block/proposal/attestations_and_signers.ts +32 -17
  662. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  663. package/src/checkpoint/checkpoint.ts +11 -1
  664. package/src/checkpoint/checkpoint_data.ts +44 -4
  665. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  666. package/src/checkpoint/digest.ts +28 -0
  667. package/src/checkpoint/index.ts +3 -0
  668. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  669. package/src/config/chain-config.ts +13 -16
  670. package/src/config/sequencer-config.ts +34 -6
  671. package/src/contract/complete_address.ts +7 -3
  672. package/src/contract/contract_address.ts +6 -6
  673. package/src/contract/contract_instance.ts +11 -2
  674. package/src/contract/index.ts +0 -2
  675. package/src/contract/interfaces/contract_class.ts +2 -82
  676. package/src/contract/interfaces/contract_instance.ts +6 -2
  677. package/src/contract/private_function.ts +3 -1
  678. package/src/database-version/version_manager.ts +17 -0
  679. package/src/epoch-helpers/index.ts +24 -0
  680. package/src/file-store/factory.ts +13 -4
  681. package/src/file-store/http.ts +29 -10
  682. package/src/file-store/index.ts +1 -0
  683. package/src/gas/README.md +31 -0
  684. package/src/gas/fee_math.ts +120 -0
  685. package/src/gas/gas.ts +8 -3
  686. package/src/gas/gas_fees.ts +26 -13
  687. package/src/gas/gas_settings.ts +73 -15
  688. package/src/gas/index.ts +1 -0
  689. package/src/ha-signing/config.ts +14 -18
  690. package/src/ha-signing/index.ts +3 -1
  691. package/src/ha-signing/local_config.ts +2 -2
  692. package/src/ha-signing/types.ts +48 -34
  693. package/src/hash/hash.ts +34 -2
  694. package/src/interfaces/api_limit.ts +1 -1
  695. package/src/interfaces/archiver.ts +82 -92
  696. package/src/interfaces/aztec-node-admin.ts +35 -20
  697. package/src/interfaces/aztec-node-debug.ts +40 -0
  698. package/src/interfaces/aztec-node.ts +253 -252
  699. package/src/interfaces/block-builder.ts +2 -0
  700. package/src/interfaces/block_response.ts +92 -0
  701. package/src/interfaces/chain_tips.ts +24 -0
  702. package/src/interfaces/checkpoint_parameter.ts +20 -0
  703. package/src/interfaces/checkpoint_response.ts +84 -0
  704. package/src/interfaces/client.ts +7 -1
  705. package/src/interfaces/configs.ts +40 -1
  706. package/src/interfaces/l1_publish_info.ts +40 -0
  707. package/src/interfaces/l2_logs_source.ts +13 -42
  708. package/src/interfaces/merkle_tree_operations.ts +3 -2
  709. package/src/interfaces/p2p-bootstrap.ts +2 -2
  710. package/src/interfaces/p2p.ts +35 -15
  711. package/src/interfaces/private_kernel_prover.ts +88 -0
  712. package/src/interfaces/prover-agent.ts +1 -1
  713. package/src/interfaces/prover-client.ts +2 -5
  714. package/src/interfaces/prover-node.ts +7 -7
  715. package/src/interfaces/proving-job-source.ts +4 -4
  716. package/src/interfaces/proving-job.ts +3 -3
  717. package/src/interfaces/public_storage_override.ts +26 -0
  718. package/src/interfaces/server.ts +5 -0
  719. package/src/interfaces/slasher.ts +17 -10
  720. package/src/interfaces/tx_provider.ts +6 -0
  721. package/src/interfaces/validator.ts +34 -15
  722. package/src/interfaces/world_state.ts +1 -1
  723. package/src/kernel/hints/key_validation_request.ts +18 -16
  724. package/src/kernel/index.ts +4 -0
  725. package/src/kernel/log_hash.ts +29 -9
  726. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  727. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  728. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  729. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  730. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  731. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  732. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  733. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  734. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  735. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  736. package/src/kernel/public_call_request.ts +22 -7
  737. package/src/keys/derivation.ts +21 -9
  738. package/src/keys/public_key.ts +26 -2
  739. package/src/keys/public_keys.ts +124 -110
  740. package/src/kv-store/config.ts +3 -10
  741. package/src/l1-contracts/index.ts +1 -1
  742. package/src/logs/app_tagging_secret.ts +137 -0
  743. package/src/logs/app_tagging_secret_kind.ts +6 -0
  744. package/src/logs/contract_class_log.ts +15 -5
  745. package/src/logs/index.ts +6 -6
  746. package/src/logs/log_cursor.ts +110 -0
  747. package/src/logs/log_result.ts +104 -0
  748. package/src/logs/logs_query.ts +138 -0
  749. package/src/logs/message_context.ts +22 -8
  750. package/src/logs/pending_tagged_log.ts +1 -3
  751. package/src/logs/pre_tag.ts +3 -6
  752. package/src/logs/private_log.ts +9 -3
  753. package/src/logs/query_all_logs_by_tags.ts +98 -0
  754. package/src/logs/shared_secret_derivation.ts +21 -10
  755. package/src/logs/siloed_tag.ts +20 -11
  756. package/src/logs/tag.ts +8 -8
  757. package/src/logs/tagging_index_range.ts +4 -10
  758. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  759. package/src/messaging/index.ts +1 -0
  760. package/src/messaging/l1_to_l2_message.ts +12 -9
  761. package/src/messaging/l2_to_l1_membership.ts +85 -13
  762. package/src/messaging/l2_to_l1_message.ts +29 -9
  763. package/src/noir/index.ts +2 -0
  764. package/src/note/note_dao.ts +1 -4
  765. package/src/p2p/block_proposal.ts +111 -36
  766. package/src/p2p/checkpoint_attestation.ts +27 -31
  767. package/src/p2p/checkpoint_proposal.ts +128 -73
  768. package/src/p2p/consensus_payload.ts +59 -28
  769. package/src/p2p/gossipable.ts +4 -4
  770. package/src/p2p/signature_utils.ts +110 -25
  771. package/src/p2p/signed_txs.ts +46 -28
  772. package/src/parity/parity_base_private_inputs.ts +10 -4
  773. package/src/parity/parity_public_inputs.ts +9 -2
  774. package/src/proofs/chonk_proof.ts +132 -12
  775. package/src/rollup/block_headers_hash.ts +11 -2
  776. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  777. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  778. package/src/schemas/schemas.ts +6 -1
  779. package/src/slashing/helpers.ts +13 -9
  780. package/src/slashing/index.ts +1 -2
  781. package/src/slashing/serialization.ts +1 -81
  782. package/src/slashing/types.ts +24 -49
  783. package/src/slashing/{tally.ts → votes.ts} +1 -1
  784. package/src/stats/stats.ts +4 -0
  785. package/src/tests/factories.ts +103 -111
  786. package/src/tests/mocks.ts +66 -70
  787. package/src/timetable/index.ts +308 -13
  788. package/src/trees/append_only_tree_snapshot.ts +8 -3
  789. package/src/trees/nullifier_leaf.ts +4 -0
  790. package/src/trees/nullifier_membership_witness.ts +2 -12
  791. package/src/tx/block_header.ts +10 -5
  792. package/src/tx/capsule.ts +10 -2
  793. package/src/tx/fee_provider.ts +10 -0
  794. package/src/tx/global_variable_builder.ts +2 -3
  795. package/src/tx/global_variables.ts +10 -18
  796. package/src/tx/hashed_values.ts +8 -3
  797. package/src/tx/index.ts +1 -0
  798. package/src/tx/indexed_tx_effect.ts +1 -2
  799. package/src/tx/partial_state_reference.ts +8 -3
  800. package/src/tx/profiling.ts +4 -4
  801. package/src/tx/proven_tx.ts +6 -0
  802. package/src/tx/public_call_request_with_calldata.ts +8 -3
  803. package/src/tx/simulated_tx.ts +22 -21
  804. package/src/tx/state_reference.ts +9 -4
  805. package/src/tx/tree_snapshots.ts +9 -4
  806. package/src/tx/tx.ts +33 -24
  807. package/src/tx/tx_constant_data.ts +8 -3
  808. package/src/tx/tx_context.ts +8 -3
  809. package/src/tx/tx_hash.ts +20 -5
  810. package/src/tx/tx_receipt.ts +2 -14
  811. package/src/tx/validator/error_texts.ts +8 -0
  812. package/src/tx/validator/tx_validator.ts +1 -5
  813. package/src/types/shared.ts +8 -13
  814. package/src/update-checker/dev_version.ts +2 -0
  815. package/src/update-checker/index.ts +1 -0
  816. package/src/update-checker/package_version.ts +10 -23
  817. package/src/validators/schemas.ts +6 -4
  818. package/src/validators/types.ts +21 -2
  819. package/src/versioning/versioning.ts +1 -1
  820. package/src/vks/verification_key.ts +5 -184
  821. package/src/world-state/genesis_data.ts +27 -0
  822. package/src/world-state/index.ts +1 -0
  823. package/src/world-state/world_state_revision.ts +9 -1
  824. package/dest/abi/mocked_keys.d.ts +0 -2
  825. package/dest/abi/mocked_keys.d.ts.map +0 -1
  826. package/dest/abi/mocked_keys.js +0 -1
  827. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  828. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  829. package/dest/block/checkpointed_l2_block.js +0 -46
  830. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  831. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  832. package/dest/contract/private_function_membership_proof.js +0 -124
  833. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  834. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  835. package/dest/contract/utility_function_membership_proof.js +0 -87
  836. package/dest/interfaces/get_logs_response.d.ts +0 -97
  837. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  838. package/dest/interfaces/get_logs_response.js +0 -12
  839. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  840. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  841. package/dest/l1-contracts/slash_factory.js +0 -158
  842. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  843. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  844. package/dest/logs/extended_contract_class_log.js +0 -67
  845. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  846. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  847. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  848. package/dest/logs/extended_public_log.d.ts +0 -106
  849. package/dest/logs/extended_public_log.d.ts.map +0 -1
  850. package/dest/logs/extended_public_log.js +0 -73
  851. package/dest/logs/log_filter.d.ts +0 -25
  852. package/dest/logs/log_filter.d.ts.map +0 -1
  853. package/dest/logs/log_filter.js +0 -12
  854. package/dest/logs/log_id.d.ts +0 -85
  855. package/dest/logs/log_id.d.ts.map +0 -1
  856. package/dest/logs/log_id.js +0 -94
  857. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  858. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  859. package/dest/logs/tx_scoped_l2_log.js +0 -77
  860. package/dest/slashing/empire.d.ts +0 -31
  861. package/dest/slashing/empire.d.ts.map +0 -1
  862. package/dest/slashing/empire.js +0 -87
  863. package/src/abi/mocked_keys.ts +0 -2
  864. package/src/block/checkpointed_l2_block.ts +0 -70
  865. package/src/contract/private_function_membership_proof.ts +0 -167
  866. package/src/contract/utility_function_membership_proof.ts +0 -118
  867. package/src/interfaces/get_logs_response.ts +0 -35
  868. package/src/l1-contracts/slash_factory.ts +0 -180
  869. package/src/logs/extended_contract_class_log.ts +0 -87
  870. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  871. package/src/logs/extended_public_log.ts +0 -94
  872. package/src/logs/log_filter.ts +0 -36
  873. package/src/logs/log_id.ts +0 -125
  874. package/src/logs/tx_scoped_l2_log.ts +0 -114
  875. package/src/slashing/empire.ts +0 -104
@@ -1,124 +0,0 @@
1
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
5
- import { FunctionSelector, FunctionType } from '../abi/index.js';
6
- import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPreimage, computeFunctionArtifactHash, computeFunctionMetadataHash, getArtifactMerkleTreeHasher } from './artifact_hash.js';
7
- import { getContractClassPrivateFunctionFromArtifact } from './contract_class.js';
8
- import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './private_function.js';
9
- /**
10
- * Creates a membership proof for a private function in a contract class, to be verified via `isValidPrivateFunctionMembershipProof`.
11
- * @param selector - Selector of the function to create the proof for.
12
- * @param artifact - Artifact of the contract class where the function is defined.
13
- */ export async function createPrivateFunctionMembershipProof(selector, artifact) {
14
- const log = createLogger('circuits:function_membership_proof');
15
- // Locate private function definition and artifact
16
- const privateFunctions = artifact.functions.filter((fn)=>fn.functionType === FunctionType.PRIVATE);
17
- const privateFunctionsFromArtifact = await Promise.all(privateFunctions.map(getContractClassPrivateFunctionFromArtifact));
18
- const privateFunction = privateFunctionsFromArtifact.find((fn)=>fn.selector.equals(selector));
19
- const privateFunctionsAndSelectors = await Promise.all(privateFunctions.map(async (fn)=>({
20
- fn,
21
- selector: await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters)
22
- })));
23
- const privateFunctionArtifact = privateFunctionsAndSelectors.find((fnAndSelector)=>selector.equals(fnAndSelector.selector))?.fn;
24
- if (!privateFunction || !privateFunctionArtifact) {
25
- throw new Error(`Private function with selector ${selector.toString()} not found`);
26
- }
27
- // Compute preimage for the artifact hash
28
- const { utilityFunctionRoot: utilityFunctionsTreeRoot, metadataHash: artifactMetadataHash } = await computeArtifactHashPreimage(artifact);
29
- // We need two sibling paths because private function information is split across two trees:
30
- // The "private function tree" captures the selectors and verification keys, and is used in the kernel circuit for verifying the proof generated by the app circuit.
31
- const functionLeaf = await computePrivateFunctionLeaf(privateFunction);
32
- const functionsTree = await computePrivateFunctionsTree(privateFunctionsFromArtifact);
33
- const functionsTreeLeafIndex = functionsTree.getIndex(functionLeaf);
34
- const functionsTreeSiblingPath = functionsTree.getSiblingPath(functionsTreeLeafIndex).map(Fr.fromBuffer);
35
- // And the "artifact tree" captures function bytecode and metadata, and is used by the pxe to check that its executing the code it's supposed to be executing, but it never goes into circuits.
36
- const functionMetadataHash = computeFunctionMetadataHash(privateFunctionArtifact);
37
- const functionArtifactHash = await computeFunctionArtifactHash({
38
- ...privateFunctionArtifact,
39
- functionMetadataHash
40
- });
41
- const artifactTree = await computeArtifactFunctionTree(artifact, FunctionType.PRIVATE);
42
- const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
43
- const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
44
- log.debug(`Computed proof for private function with selector ${selector.toString()}`, {
45
- functionArtifactHash,
46
- functionMetadataHash,
47
- functionLeaf: '0x' + functionLeaf.toString('hex'),
48
- artifactMetadataHash,
49
- privateFunctionsTreeRoot: '0x' + functionsTree.root.toString('hex'),
50
- utilityFunctionsTreeRoot,
51
- artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map((fr)=>fr.toString()).join(','),
52
- privateFunctionTreeSiblingPath: functionsTreeSiblingPath.map((fr)=>fr.toString()).join(',')
53
- });
54
- return {
55
- artifactTreeSiblingPath,
56
- artifactTreeLeafIndex,
57
- artifactMetadataHash,
58
- functionMetadataHash,
59
- utilityFunctionsTreeRoot,
60
- privateFunctionTreeSiblingPath: functionsTreeSiblingPath,
61
- privateFunctionTreeLeafIndex: functionsTreeLeafIndex
62
- };
63
- }
64
- /**
65
- * Verifies that a private function with a membership proof as emitted by the ClassRegistry contract is valid,
66
- * as defined in the protocol specs at contract-deployment/classes:
67
- *
68
- * ```
69
- * // Load contract class from local db
70
- * contract_class = db.get_contract_class(contract_class_id)
71
- *
72
- * // Compute function leaf and assert it belongs to the private functions tree
73
- * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF)
74
- * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
75
- * assert computed_private_function_tree_root == contract_class.private_functions_root
76
- *
77
- * // Compute artifact leaf and assert it belongs to the artifact
78
- * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
79
- * computed_artifact_private_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path)
80
- * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, utility_functions_artifact_tree_root, artifact_metadata_hash)
81
- * assert computed_artifact_hash == contract_class.artifact_hash
82
- * ```
83
- * @param fn - Function to check membership proof for.
84
- * @param contractClass - In which contract class the function is expected to be.
85
- */ export async function isValidPrivateFunctionMembershipProof(fn, contractClass) {
86
- const log = createLogger('circuits:function_membership_proof');
87
- // Check private function tree membership
88
- const functionLeaf = await computePrivateFunctionLeaf(fn);
89
- const rootBuffer = await computeRootFromSiblingPath(functionLeaf, fn.privateFunctionTreeSiblingPath.map((fr)=>fr.toBuffer()), fn.privateFunctionTreeLeafIndex, async (left, right)=>(await poseidon2Hash([
90
- left,
91
- right
92
- ])).toBuffer());
93
- const computedPrivateFunctionTreeRoot = Fr.fromBuffer(rootBuffer);
94
- if (!contractClass.privateFunctionsRoot.equals(computedPrivateFunctionTreeRoot)) {
95
- log.debug(`Private function tree root mismatch`, {
96
- expectedPrivateFunctionTreeRoot: contractClass.privateFunctionsRoot,
97
- computedPrivateFunctionTreeRoot: computedPrivateFunctionTreeRoot,
98
- computedFunctionLeaf: '0x' + functionLeaf.toString('hex')
99
- });
100
- return false;
101
- }
102
- // Check artifact hash
103
- const functionArtifactHash = await computeFunctionArtifactHash(fn);
104
- const computedArtifactPrivateFunctionTreeRootBuffer = await computeRootFromSiblingPath(functionArtifactHash.toBuffer(), fn.artifactTreeSiblingPath.map((fr)=>fr.toBuffer()), fn.artifactTreeLeafIndex, getArtifactMerkleTreeHasher());
105
- const computedArtifactPrivateFunctionTreeRoot = Fr.fromBuffer(computedArtifactPrivateFunctionTreeRootBuffer);
106
- const computedArtifactHash = await computeArtifactHash({
107
- privateFunctionRoot: computedArtifactPrivateFunctionTreeRoot,
108
- utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
109
- metadataHash: fn.artifactMetadataHash
110
- });
111
- if (!contractClass.artifactHash.equals(computedArtifactHash)) {
112
- log.debug(`Artifact hash mismatch`, {
113
- expected: contractClass.artifactHash,
114
- computedArtifactHash,
115
- computedFunctionArtifactHash: functionArtifactHash,
116
- computedArtifactPrivateFunctionTreeRoot,
117
- utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
118
- metadataHash: fn.artifactMetadataHash,
119
- artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map((fr)=>fr.toString()).join(',')
120
- });
121
- return false;
122
- }
123
- return true;
124
- }
@@ -1,27 +0,0 @@
1
- import { type ContractArtifact, FunctionSelector } from '../abi/index.js';
2
- import type { ContractClassPublic, UtilityFunctionMembershipProof, UtilityFunctionWithMembershipProof } from './interfaces/index.js';
3
- /**
4
- * Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
5
- * @param selector - Selector of the function to create the proof for.
6
- * @param artifact - Artifact of the contract class where the function is defined.
7
- */
8
- export declare function createUtilityFunctionMembershipProof(selector: FunctionSelector, artifact: ContractArtifact): Promise<UtilityFunctionMembershipProof>;
9
- /**
10
- * Verifies that a utility function with a membership proof as emitted by the ClassRegistry contract is valid,
11
- * as defined in the protocol specs at contract-deployment/classes:
12
- *
13
- * ```
14
- * // Load contract class from local db
15
- * contract_class = db.get_contract_class(contract_class_id)
16
- *
17
- * // Compute artifact leaf and assert it belongs to the artifact
18
- * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
19
- * computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
20
- * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
21
- * assert computed_artifact_hash == contract_class.artifact_hash
22
- * ```
23
- * @param fn - Function to check membership proof for.
24
- * @param contractClass - In which contract class the function is expected to be.
25
- */
26
- export declare function isValidUtilityFunctionMembershipProof(fn: UtilityFunctionWithMembershipProof, contractClass: Pick<ContractClassPublic, 'artifactHash'>): Promise<boolean>;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9mdW5jdGlvbl9tZW1iZXJzaGlwX3Byb29mLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvdXRpbGl0eV9mdW5jdGlvbl9tZW1iZXJzaGlwX3Byb29mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBU3hGLE9BQU8sS0FBSyxFQUNWLG1CQUFtQixFQUNuQiw4QkFBOEIsRUFDOUIsa0NBQWtDLEVBQ25DLE1BQU0sdUJBQXVCLENBQUM7QUFFL0I7Ozs7R0FJRztBQUNILHdCQUFzQixvQ0FBb0MsQ0FDeEQsUUFBUSxFQUFFLGdCQUFnQixFQUMxQixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQXNDekM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHdCQUFzQixxQ0FBcUMsQ0FDekQsRUFBRSxFQUFFLGtDQUFrQyxFQUN0QyxhQUFhLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxvQkErQnpEIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility_function_membership_proof.d.ts","sourceRoot":"","sources":["../../src/contract/utility_function_membership_proof.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AASxF,OAAO,KAAK,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EACnC,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,8BAA8B,CAAC,CAsCzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,kCAAkC,EACtC,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,oBA+BzD"}
@@ -1,87 +0,0 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
4
- import { FunctionSelector, FunctionType } from '../abi/index.js';
5
- import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPreimage, computeFunctionArtifactHash, computeFunctionMetadataHash, getArtifactMerkleTreeHasher } from './artifact_hash.js';
6
- /**
7
- * Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
8
- * @param selector - Selector of the function to create the proof for.
9
- * @param artifact - Artifact of the contract class where the function is defined.
10
- */ export async function createUtilityFunctionMembershipProof(selector, artifact) {
11
- const log = createLogger('circuits:function_membership_proof');
12
- // Locate function artifact
13
- const utilityFunctions = artifact.functions.filter((fn)=>fn.functionType === FunctionType.UTILITY);
14
- const utilityFunctionsAndSelectors = await Promise.all(utilityFunctions.map(async (fn)=>({
15
- fn,
16
- selector: await FunctionSelector.fromNameAndParameters(fn)
17
- })));
18
- const fn = utilityFunctionsAndSelectors.find((fnAndSelector)=>selector.equals(fnAndSelector.selector))?.fn;
19
- if (!fn) {
20
- throw new Error(`Utility function with selector ${selector.toString()} not found`);
21
- }
22
- // Compute preimage for the artifact hash
23
- const { privateFunctionRoot: privateFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } = await computeArtifactHashPreimage(artifact);
24
- // Compute the sibling path for the "artifact tree"
25
- const functionMetadataHash = computeFunctionMetadataHash(fn);
26
- const functionArtifactHash = await computeFunctionArtifactHash({
27
- ...fn,
28
- functionMetadataHash
29
- });
30
- const artifactTree = await computeArtifactFunctionTree(artifact, FunctionType.UTILITY);
31
- const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
32
- const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
33
- log.debug(`Computed proof for utility function with selector ${selector.toString()}`, {
34
- functionArtifactHash,
35
- functionMetadataHash,
36
- artifactMetadataHash,
37
- artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map((fr)=>fr.toString()).join(','),
38
- privateFunctionsArtifactTreeRoot
39
- });
40
- return {
41
- artifactTreeSiblingPath,
42
- artifactTreeLeafIndex,
43
- artifactMetadataHash,
44
- functionMetadataHash,
45
- privateFunctionsArtifactTreeRoot
46
- };
47
- }
48
- /**
49
- * Verifies that a utility function with a membership proof as emitted by the ClassRegistry contract is valid,
50
- * as defined in the protocol specs at contract-deployment/classes:
51
- *
52
- * ```
53
- * // Load contract class from local db
54
- * contract_class = db.get_contract_class(contract_class_id)
55
- *
56
- * // Compute artifact leaf and assert it belongs to the artifact
57
- * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
58
- * computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
59
- * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
60
- * assert computed_artifact_hash == contract_class.artifact_hash
61
- * ```
62
- * @param fn - Function to check membership proof for.
63
- * @param contractClass - In which contract class the function is expected to be.
64
- */ export async function isValidUtilityFunctionMembershipProof(fn, contractClass) {
65
- const log = createLogger('circuits:function_membership_proof');
66
- const functionArtifactHash = await computeFunctionArtifactHash(fn);
67
- const computedArtifactFunctionTreeRootBuffer = await computeRootFromSiblingPath(functionArtifactHash.toBuffer(), fn.artifactTreeSiblingPath.map((fr)=>fr.toBuffer()), fn.artifactTreeLeafIndex, getArtifactMerkleTreeHasher());
68
- const computedArtifactFunctionTreeRoot = Fr.fromBuffer(computedArtifactFunctionTreeRootBuffer);
69
- const computedArtifactHash = await computeArtifactHash({
70
- privateFunctionRoot: fn.privateFunctionsArtifactTreeRoot,
71
- utilityFunctionRoot: computedArtifactFunctionTreeRoot,
72
- metadataHash: fn.artifactMetadataHash
73
- });
74
- if (!contractClass.artifactHash.equals(computedArtifactHash)) {
75
- log.debug(`Artifact hash mismatch`, {
76
- expected: contractClass.artifactHash,
77
- computedArtifactHash,
78
- computedFunctionArtifactHash: functionArtifactHash,
79
- computedArtifactFunctionTreeRoot,
80
- privateFunctionsArtifactTreeRoot: fn.privateFunctionsArtifactTreeRoot,
81
- metadataHash: fn.artifactMetadataHash,
82
- artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map((fr)=>fr.toString()).join(',')
83
- });
84
- return false;
85
- }
86
- return true;
87
- }
@@ -1,97 +0,0 @@
1
- import { z } from 'zod';
2
- import { ExtendedContractClassLog } from '../logs/extended_contract_class_log.js';
3
- import { ExtendedPublicLog } from '../logs/extended_public_log.js';
4
- /** Response for the getContractClassLogs archiver call. */
5
- export type GetContractClassLogsResponse = {
6
- /** An array of ExtendedContractClassLog elements. */
7
- logs: ExtendedContractClassLog[];
8
- /** Indicates if a limit has been reached. */
9
- maxLogsHit: boolean;
10
- };
11
- export declare const GetContractClassLogsResponseSchema: z.ZodObject<{
12
- logs: z.ZodArray<import("../schemas/index.js").ZodFor<ExtendedContractClassLog>, "many">;
13
- maxLogsHit: z.ZodBoolean;
14
- }, "strip", z.ZodTypeAny, {
15
- logs: ExtendedContractClassLog[];
16
- maxLogsHit: boolean;
17
- }, {
18
- logs: any[];
19
- maxLogsHit: boolean;
20
- }>;
21
- /** Response for the getPublicLogs archiver call. */
22
- export type GetPublicLogsResponse = {
23
- /** An array of ExtendedPublicLog elements. */
24
- logs: ExtendedPublicLog[];
25
- /** Indicates if a limit has been reached. */
26
- maxLogsHit: boolean;
27
- };
28
- export declare const GetPublicLogsResponseSchema: z.ZodObject<{
29
- logs: z.ZodArray<z.ZodEffects<z.ZodObject<{
30
- id: z.ZodEffects<z.ZodObject<{
31
- blockNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, import("@aztec/foundation/branded-types").BlockNumber, string | number | bigint>;
32
- blockHash: import("../schemas/index.js").ZodFor<import("../block/block_hash.js").BlockHash>;
33
- txHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, import("../tx/tx_hash.js").TxHash, string>;
34
- txIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
35
- logIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
36
- }, "strip", z.ZodTypeAny, {
37
- blockNumber: number & {
38
- _branding: "BlockNumber";
39
- };
40
- blockHash: import("../block/block_hash.js").BlockHash;
41
- txHash: import("../tx/tx_hash.js").TxHash;
42
- txIndex: number;
43
- logIndex: number;
44
- }, {
45
- blockNumber: string | number | bigint;
46
- blockHash?: any;
47
- txHash: string;
48
- txIndex: string | number | bigint;
49
- logIndex: string | number | bigint;
50
- }>, import("../logs/log_id.js").LogId, {
51
- blockNumber: string | number | bigint;
52
- blockHash?: any;
53
- txHash: string;
54
- txIndex: string | number | bigint;
55
- logIndex: string | number | bigint;
56
- }>;
57
- log: import("../schemas/index.js").ZodFor<import("../logs/public_log.js").PublicLog>;
58
- }, "strip", z.ZodTypeAny, {
59
- id: import("../logs/log_id.js").LogId;
60
- log: import("../logs/public_log.js").PublicLog;
61
- }, {
62
- id: {
63
- blockNumber: string | number | bigint;
64
- blockHash?: any;
65
- txHash: string;
66
- txIndex: string | number | bigint;
67
- logIndex: string | number | bigint;
68
- };
69
- log?: any;
70
- }>, ExtendedPublicLog, {
71
- id: {
72
- blockNumber: string | number | bigint;
73
- blockHash?: any;
74
- txHash: string;
75
- txIndex: string | number | bigint;
76
- logIndex: string | number | bigint;
77
- };
78
- log?: any;
79
- }>, "many">;
80
- maxLogsHit: z.ZodBoolean;
81
- }, "strip", z.ZodTypeAny, {
82
- logs: ExtendedPublicLog[];
83
- maxLogsHit: boolean;
84
- }, {
85
- logs: {
86
- id: {
87
- blockNumber: string | number | bigint;
88
- blockHash?: any;
89
- txHash: string;
90
- txIndex: string | number | bigint;
91
- logIndex: string | number | bigint;
92
- };
93
- log?: any;
94
- }[];
95
- maxLogsHit: boolean;
96
- }>;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2xvZ3NfcmVzcG9uc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2dldF9sb2dzX3Jlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHbkUsMkRBQTJEO0FBQzNELE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxxREFBcUQ7SUFDckQsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUM7SUFDakMsNkNBQTZDO0lBQzdDLFVBQVUsRUFBRSxPQUFPLENBQUM7Q0FDckIsQ0FBQztBQUVGLGVBQU8sTUFBTSxrQ0FBa0M7Ozs7Ozs7OztFQUs5QyxDQUFDO0FBRUYsb0RBQW9EO0FBQ3BELE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyw4Q0FBOEM7SUFDOUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7SUFDMUIsNkNBQTZDO0lBQzdDLFVBQVUsRUFBRSxPQUFPLENBQUM7Q0FDckIsQ0FBQztBQUVGLGVBQU8sTUFBTSwyQkFBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS3ZDLENBQUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_logs_response.d.ts","sourceRoot":"","sources":["../../src/interfaces/get_logs_response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,2DAA2D;AAC3D,MAAM,MAAM,4BAA4B,GAAG;IACzC,qDAAqD;IACrD,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;EAK9C,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,8CAA8C;IAC9C,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvC,CAAC"}
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- import { ExtendedContractClassLog } from '../logs/extended_contract_class_log.js';
3
- import { ExtendedPublicLog } from '../logs/extended_public_log.js';
4
- import { zodFor } from '../schemas/index.js';
5
- export const GetContractClassLogsResponseSchema = zodFor()(z.object({
6
- logs: z.array(ExtendedContractClassLog.schema),
7
- maxLogsHit: z.boolean()
8
- }));
9
- export const GetPublicLogsResponseSchema = zodFor()(z.object({
10
- logs: z.array(ExtendedPublicLog.schema),
11
- maxLogsHit: z.boolean()
12
- }));
@@ -1,45 +0,0 @@
1
- import type { L1TxRequest } from '@aztec/ethereum/l1-tx-utils';
2
- import type { ViemClient } from '@aztec/ethereum/types';
3
- import { EthAddress } from '@aztec/foundation/eth-address';
4
- import { type Hex, type Log } from 'viem';
5
- import type { L1RollupConstants } from '../epoch-helpers/index.js';
6
- import { type SlashPayload, type ValidatorSlash, type ValidatorSlashOffense } from '../slashing/index.js';
7
- export declare class SlashFactoryContract {
8
- readonly client: ViemClient;
9
- private readonly logger;
10
- private readonly contract;
11
- constructor(client: ViemClient, address: Hex | EthAddress);
12
- get address(): EthAddress;
13
- buildCreatePayloadRequest(slashes: ValidatorSlash[]): L1TxRequest;
14
- /** Tries to extract a SlashPayloadCreated event from the given logs. */
15
- tryExtractSlashPayloadCreatedEvent(logs: Log[]): {
16
- eventName: "SlashPayloadCreated";
17
- args: {
18
- amounts: readonly bigint[];
19
- offenses: readonly (readonly bigint[])[];
20
- payloadAddress: `0x${string}`;
21
- validators: readonly `0x${string}`[];
22
- };
23
- } | undefined;
24
- getSlashPayloadCreatedEvents(): Promise<SlashPayload[]>;
25
- /**
26
- * Searches for a slash payload in the events emitted by the contract.
27
- * This method cannot query for historical payload events, it queries for payloads that have not yet expired.
28
- * @param payloadAddress The address of the payload to search for.
29
- * @param constants The L1 rollup constants needed for time calculations.
30
- */
31
- getSlashPayloadFromEvents(payloadAddress: EthAddress, settings: {
32
- logsBatchSize?: number;
33
- slashingRoundSize: number;
34
- slashingPayloadLifetimeInRounds: number;
35
- } & Pick<L1RollupConstants, 'slotDuration' | 'ethereumSlotDuration'>): Promise<Omit<SlashPayload, 'votes'> | undefined>;
36
- getAddressAndIsDeployed(slashes: ValidatorSlash[]): Promise<{
37
- address: EthAddress;
38
- salt: Hex;
39
- isDeployed: boolean;
40
- }>;
41
- private sortSlashes;
42
- }
43
- export declare function packValidatorSlashOffense(offense: ValidatorSlashOffense): bigint;
44
- export declare function unpackValidatorSlashOffense(packed: bigint): ValidatorSlashOffense;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhc2hfZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2wxLWNvbnRyYWN0cy9zbGFzaF9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkzRCxPQUFPLEVBQThCLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFtQyxNQUFNLE1BQU0sQ0FBQztBQUV2RyxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFFTCxLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUsscUJBQXFCLEVBRTNCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIscUJBQWEsb0JBQW9CO2FBS2IsTUFBTSxFQUFFLFVBQVU7SUFKcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQTJDO0lBQ2xFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUE0RDtJQUVyRixZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFPMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsV0FBVyxDQWdCdkU7SUFFRCx3RUFBd0U7SUFDakUsa0NBQWtDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7Ozs7a0JBRXBEO0lBRVksNEJBQTRCLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBZW5FO0lBRUQ7Ozs7O09BS0c7SUFDVSx5QkFBeUIsQ0FDcEMsY0FBYyxFQUFFLFVBQVUsRUFDMUIsUUFBUSxFQUFFO1FBQ1IsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUMxQiwrQkFBK0IsRUFBRSxNQUFNLENBQUM7S0FDekMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQW1EbEQ7SUFFWSx1QkFBdUIsQ0FDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUN4QixPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUFDLFVBQVUsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBUWxFO0lBRUQsT0FBTyxDQUFDLFdBQVc7Q0FRcEI7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsT0FBTyxFQUFFLHFCQUFxQixHQUFHLE1BQU0sQ0FNaEY7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxxQkFBcUIsQ0FLakYifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"slash_factory.d.ts","sourceRoot":"","sources":["../../src/l1-contracts/slash_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,EAA8B,KAAK,GAAG,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAoB;aAKb,MAAM,EAAE,UAAU;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IAErF,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAO1B;IAED,IAAW,OAAO,eAEjB;IAEM,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAgBvE;IAED,wEAAwE;IACjE,kCAAkC,CAAC,IAAI,EAAE,GAAG,EAAE;;;;;;;;kBAEpD;IAEY,4BAA4B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAenE;IAED;;;;;OAKG;IACU,yBAAyB,CACpC,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,+BAA+B,EAAE,MAAM,CAAC;KACzC,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAmDlD;IAEY,uBAAuB,CAClC,OAAO,EAAE,cAAc,EAAE,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAQlE;IAED,OAAO,CAAC,WAAW;CAQpB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAMhF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAKjF"}
@@ -1,158 +0,0 @@
1
- import { tryExtractEvent } from '@aztec/ethereum/utils';
2
- import { maxBigint } from '@aztec/foundation/bigint';
3
- import { EthAddress } from '@aztec/foundation/eth-address';
4
- import { createLogger } from '@aztec/foundation/log';
5
- import { SlashFactoryAbi } from '@aztec/l1-artifacts/SlashFactoryAbi';
6
- import { encodeFunctionData, getContract } from 'viem';
7
- import { OffenseToBigInt, bigIntToOffense } from '../slashing/index.js';
8
- export class SlashFactoryContract {
9
- client;
10
- logger;
11
- contract;
12
- constructor(client, address){
13
- this.client = client;
14
- this.logger = createLogger('contracts:slash_factory');
15
- this.contract = getContract({
16
- address: typeof address === 'string' ? address : address.toString(),
17
- abi: SlashFactoryAbi,
18
- client
19
- });
20
- }
21
- get address() {
22
- return EthAddress.fromString(this.contract.address);
23
- }
24
- buildCreatePayloadRequest(slashes) {
25
- const sorted = this.sortSlashes(slashes);
26
- return {
27
- to: this.contract.address,
28
- abi: SlashFactoryAbi,
29
- data: encodeFunctionData({
30
- abi: SlashFactoryAbi,
31
- functionName: 'createSlashPayload',
32
- args: [
33
- sorted.map((d)=>d.validator.toString()),
34
- sorted.map((d)=>d.amount),
35
- sorted.map((d)=>d.offenses.map(packValidatorSlashOffense))
36
- ]
37
- })
38
- };
39
- }
40
- /** Tries to extract a SlashPayloadCreated event from the given logs. */ tryExtractSlashPayloadCreatedEvent(logs) {
41
- return tryExtractEvent(logs, this.address.toString(), SlashFactoryAbi, 'SlashPayloadCreated');
42
- }
43
- async getSlashPayloadCreatedEvents() {
44
- const events = await this.contract.getEvents.SlashPayloadCreated();
45
- return Promise.all(events.map(async (event)=>{
46
- const { validators, amounts, offenses } = event.args;
47
- const slashes = validators.map((validator, i)=>({
48
- validator: EthAddress.fromString(validator),
49
- amount: amounts[i],
50
- offenses: offenses[i].map(unpackValidatorSlashOffense)
51
- }));
52
- const block = await this.client.getBlock({
53
- blockNumber: event.blockNumber,
54
- includeTransactions: false
55
- });
56
- return {
57
- address: EthAddress.fromString(event.args.payloadAddress),
58
- slashes,
59
- timestamp: block.timestamp
60
- };
61
- }));
62
- }
63
- /**
64
- * Searches for a slash payload in the events emitted by the contract.
65
- * This method cannot query for historical payload events, it queries for payloads that have not yet expired.
66
- * @param payloadAddress The address of the payload to search for.
67
- * @param constants The L1 rollup constants needed for time calculations.
68
- */ async getSlashPayloadFromEvents(payloadAddress, settings) {
69
- // We query for the log where the payload was emitted walking backwards until we go past payload expiration time
70
- // Note that all log queries require a block range, and RPC providers cap the max range (eg quicknode is 10k blocks).
71
- const { slashingRoundSize, slashingPayloadLifetimeInRounds, slotDuration, ethereumSlotDuration } = settings;
72
- const currentBlockNumber = await this.client.getBlockNumber({
73
- cacheTime: 0
74
- });
75
- // Why the +1 below? Just for good measure. Better err on the safe side.
76
- const earliestBlockNumber = maxBigint(0n, currentBlockNumber - (BigInt(slashingPayloadLifetimeInRounds) + 1n) * BigInt(slashingRoundSize) * BigInt(slotDuration) / BigInt(ethereumSlotDuration));
77
- this.logger.trace(`Starting search for slash payload ${payloadAddress} from block ${currentBlockNumber} with earliest block ${earliestBlockNumber}`);
78
- const batchSize = BigInt(settings.logsBatchSize ?? 10000);
79
- let toBlock = currentBlockNumber;
80
- do {
81
- const fromBlock = maxBigint(earliestBlockNumber, toBlock - batchSize);
82
- this.logger.trace(`Searching for slash payload ${payloadAddress} in blocks ${fromBlock} to ${toBlock}`);
83
- const logs = await this.contract.getEvents.SlashPayloadCreated({
84
- payloadAddress: payloadAddress.toString()
85
- }, {
86
- fromBlock,
87
- toBlock,
88
- strict: true
89
- });
90
- // We found the payload, return it
91
- if (logs.length > 0) {
92
- const log = logs[0];
93
- const { validators, amounts, offenses } = log.args;
94
- // Convert the data to our internal types
95
- const slashes = validators.map((validator, i)=>({
96
- validator: EthAddress.fromString(validator),
97
- amount: amounts[i],
98
- offenses: offenses[i].map(unpackValidatorSlashOffense)
99
- }));
100
- // Get the timestamp from the block
101
- const block = await this.client.getBlock({
102
- blockNumber: log.blockNumber,
103
- includeTransactions: false
104
- });
105
- return {
106
- address: payloadAddress,
107
- slashes,
108
- timestamp: block.timestamp
109
- };
110
- }
111
- // If not found, we go back one batch
112
- toBlock -= batchSize;
113
- }while (toBlock > earliestBlockNumber)
114
- return undefined;
115
- }
116
- async getAddressAndIsDeployed(slashes) {
117
- const sortedSlashes = this.sortSlashes(slashes);
118
- const [address, salt, isDeployed] = await this.contract.read.getAddressAndIsDeployed([
119
- sortedSlashes.map((s)=>s.validator.toString()),
120
- sortedSlashes.map((s)=>s.amount),
121
- sortedSlashes.map((s)=>s.offenses.map(packValidatorSlashOffense))
122
- ]);
123
- return {
124
- address: EthAddress.fromString(address),
125
- salt,
126
- isDeployed
127
- };
128
- }
129
- sortSlashes(slashes) {
130
- const offenseSorter = (a, b)=>{
131
- return a.epochOrSlot === b.epochOrSlot ? a.offenseType - b.offenseType : Number(a.epochOrSlot - b.epochOrSlot);
132
- };
133
- return [
134
- ...slashes
135
- ].map((slash)=>({
136
- ...slash,
137
- offenses: [
138
- ...slash.offenses
139
- ].sort(offenseSorter)
140
- })).sort((a, b)=>a.validator.toString().localeCompare(b.validator.toString()));
141
- }
142
- }
143
- export function packValidatorSlashOffense(offense) {
144
- const offenseId = OffenseToBigInt[offense.offenseType];
145
- if (offenseId > (1 << 8) - 1) {
146
- throw new Error(`Offense type ${offense.offenseType} cannot be packed into 8 bits`);
147
- }
148
- return (offenseId << 120n) + offense.epochOrSlot;
149
- }
150
- export function unpackValidatorSlashOffense(packed) {
151
- const offenseId = packed >> 120n & 0xffn;
152
- const epochOrSlot = packed & (1n << 120n) - 1n;
153
- const offenseType = bigIntToOffense(offenseId);
154
- return {
155
- epochOrSlot,
156
- offenseType
157
- };
158
- }
@@ -1,51 +0,0 @@
1
- import type { ZodFor } from '@aztec/foundation/schemas';
2
- import { BufferReader } from '@aztec/foundation/serialize';
3
- import type { FieldsOf } from '@aztec/foundation/types';
4
- import { ContractClassLog } from './contract_class_log.js';
5
- import { LogId } from './log_id.js';
6
- /**
7
- * Represents an individual contract class log entry extended with info about the block and tx it was emitted in.
8
- */
9
- export declare class ExtendedContractClassLog {
10
- /** Globally unique id of the log. */
11
- readonly id: LogId;
12
- /** The data contents of the log. */
13
- readonly log: ContractClassLog;
14
- constructor(
15
- /** Globally unique id of the log. */
16
- id: LogId,
17
- /** The data contents of the log. */
18
- log: ContractClassLog);
19
- static random(): Promise<ExtendedContractClassLog>;
20
- static get schema(): ZodFor<ExtendedContractClassLog>;
21
- static from(fields: FieldsOf<ExtendedContractClassLog>): ExtendedContractClassLog;
22
- /**
23
- * Serializes log to a buffer.
24
- * @returns A buffer containing the serialized log.
25
- */
26
- toBuffer(): Buffer;
27
- /**
28
- * Serializes log to a string.
29
- * @returns A string containing the serialized log.
30
- */
31
- toString(): string;
32
- /**
33
- * Checks if two ExtendedContractClassLog objects are equal.
34
- * @param other - Another ExtendedContractClassLog object to compare with.
35
- * @returns True if the two objects are equal, false otherwise.
36
- */
37
- equals(other: ExtendedContractClassLog): boolean;
38
- /**
39
- * Deserializes log from a buffer.
40
- * @param buffer - The buffer or buffer reader containing the log.
41
- * @returns Deserialized instance of `Log`.
42
- */
43
- static fromBuffer(buffer: Buffer | BufferReader): ExtendedContractClassLog;
44
- /**
45
- * Deserializes `ExtendedContractClassLog` object from a hex string representation.
46
- * @param data - A hex string representation of the log.
47
- * @returns An `ExtendedContractClassLog` object.
48
- */
49
- static fromString(data: string): ExtendedContractClassLog;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWRfY29udHJhY3RfY2xhc3NfbG9nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9leHRlbmRlZF9jb250cmFjdF9jbGFzc19sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxxQkFBYSx3QkFBd0I7SUFFakMscUNBQXFDO2FBQ3JCLEVBQUUsRUFBRSxLQUFLO0lBQ3pCLG9DQUFvQzthQUNwQixHQUFHLEVBQUUsZ0JBQWdCO0lBSnZDO0lBQ0UscUNBQXFDO0lBQ3JCLEVBQUUsRUFBRSxLQUFLO0lBQ3pCLG9DQUFvQztJQUNwQixHQUFHLEVBQUUsZ0JBQWdCLEVBQ25DO0lBRUosT0FBYSxNQUFNLHNDQUVsQjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBT3BEO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLHdCQUF3QixDQUFDLDRCQUVyRDtJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxNQUFNLENBRXhCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsR0FBRyxPQUFPLENBRXREO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHdCQUF3QixDQU9oRjtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLHdCQUF3QixDQUUvRDtDQUNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"extended_contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/extended_contract_class_log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,qCAAqC;aACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;aACpB,GAAG,EAAE,gBAAgB;IAJvC;IACE,qCAAqC;IACrB,EAAE,EAAE,KAAK;IACzB,oCAAoC;IACpB,GAAG,EAAE,gBAAgB,EACnC;IAEJ,OAAa,MAAM,sCAElB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAOpD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,4BAErD;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAEtD;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,wBAAwB,CAOhF;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAE/D;CACF"}