@aztec/stdlib 0.0.1-commit.85d7d01 → 0.0.1-commit.8655d4a

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