@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.1

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 +14 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +31 -7
  12. package/dest/abi/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 +216 -357
  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 +46 -7
  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 +57 -21
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  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 +11 -32
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +12 -18
  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 +66 -40
  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 +202 -33
  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 +11 -3
  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/checkpoint/validate.d.ts +11 -3
  127. package/dest/checkpoint/validate.d.ts.map +1 -1
  128. package/dest/checkpoint/validate.js +9 -6
  129. package/dest/config/chain-config.d.ts +4 -9
  130. package/dest/config/chain-config.d.ts.map +1 -1
  131. package/dest/config/chain-config.js +13 -12
  132. package/dest/config/index.d.ts +2 -2
  133. package/dest/config/index.d.ts.map +1 -1
  134. package/dest/config/index.js +1 -1
  135. package/dest/config/network-consensus-config.d.ts +72 -0
  136. package/dest/config/network-consensus-config.d.ts.map +1 -0
  137. package/dest/config/network-consensus-config.js +231 -0
  138. package/dest/config/sequencer-config.d.ts +7 -3
  139. package/dest/config/sequencer-config.d.ts.map +1 -1
  140. package/dest/config/sequencer-config.js +38 -5
  141. package/dest/contract/complete_address.d.ts +3 -2
  142. package/dest/contract/complete_address.d.ts.map +1 -1
  143. package/dest/contract/complete_address.js +6 -2
  144. package/dest/contract/contract_address.d.ts +5 -5
  145. package/dest/contract/contract_address.d.ts.map +1 -1
  146. package/dest/contract/contract_address.js +5 -4
  147. package/dest/contract/contract_deployment_data.d.ts +15 -61
  148. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  149. package/dest/contract/contract_instance.d.ts +4 -2
  150. package/dest/contract/contract_instance.d.ts.map +1 -1
  151. package/dest/contract/contract_instance.js +10 -3
  152. package/dest/contract/index.d.ts +1 -3
  153. package/dest/contract/index.d.ts.map +1 -1
  154. package/dest/contract/index.js +0 -2
  155. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  156. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  157. package/dest/contract/interfaces/contract_class.js +1 -28
  158. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  159. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  160. package/dest/contract/interfaces/contract_instance.js +4 -2
  161. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  162. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  163. package/dest/contract/interfaces/node-info.d.ts +11 -1
  164. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  165. package/dest/contract/interfaces/node-info.js +7 -1
  166. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  167. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  168. package/dest/contract/private_function.d.ts +1 -1
  169. package/dest/contract/private_function.d.ts.map +1 -1
  170. package/dest/contract/private_function.js +2 -4
  171. package/dest/database-version/database_version.d.ts +5 -11
  172. package/dest/database-version/database_version.d.ts.map +1 -1
  173. package/dest/database-version/version_manager.d.ts +6 -2
  174. package/dest/database-version/version_manager.d.ts.map +1 -1
  175. package/dest/database-version/version_manager.js +12 -1
  176. package/dest/deserialization/index.d.ts +35 -3
  177. package/dest/deserialization/index.d.ts.map +1 -1
  178. package/dest/deserialization/index.js +32 -1
  179. package/dest/epoch-helpers/index.d.ts +10 -22
  180. package/dest/epoch-helpers/index.d.ts.map +1 -1
  181. package/dest/epoch-helpers/index.js +12 -0
  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 +17 -4
  199. package/dest/gas/gas_settings.d.ts +60 -86
  200. package/dest/gas/gas_settings.d.ts.map +1 -1
  201. package/dest/gas/gas_settings.js +49 -9
  202. package/dest/gas/index.d.ts +3 -1
  203. package/dest/gas/index.d.ts.map +1 -1
  204. package/dest/gas/index.js +2 -0
  205. package/dest/gas/tx_gas_limits.d.ts +72 -0
  206. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  207. package/dest/gas/tx_gas_limits.js +85 -0
  208. package/dest/ha-signing/config.d.ts +11 -75
  209. package/dest/ha-signing/config.d.ts.map +1 -1
  210. package/dest/ha-signing/config.js +9 -18
  211. package/dest/ha-signing/index.d.ts +2 -2
  212. package/dest/ha-signing/index.d.ts.map +1 -1
  213. package/dest/ha-signing/index.js +1 -1
  214. package/dest/ha-signing/local_config.d.ts +3 -34
  215. package/dest/ha-signing/local_config.d.ts.map +1 -1
  216. package/dest/ha-signing/local_config.js +2 -2
  217. package/dest/ha-signing/types.d.ts +37 -32
  218. package/dest/ha-signing/types.d.ts.map +1 -1
  219. package/dest/ha-signing/types.js +13 -6
  220. package/dest/hash/hash.d.ts +19 -1
  221. package/dest/hash/hash.d.ts.map +1 -1
  222. package/dest/hash/hash.js +39 -2
  223. package/dest/interfaces/allowed_element.d.ts +4 -28
  224. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  225. package/dest/interfaces/api_limit.d.ts +1 -1
  226. package/dest/interfaces/api_limit.js +1 -1
  227. package/dest/interfaces/archiver.d.ts +20 -32
  228. package/dest/interfaces/archiver.d.ts.map +1 -1
  229. package/dest/interfaces/archiver.js +215 -70
  230. package/dest/interfaces/aztec-node-admin.d.ts +71 -305
  231. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  232. package/dest/interfaces/aztec-node-admin.js +60 -17
  233. package/dest/interfaces/aztec-node-debug.d.ts +34 -0
  234. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  235. package/dest/interfaces/aztec-node-debug.js +29 -0
  236. package/dest/interfaces/aztec-node.d.ts +156 -112
  237. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  238. package/dest/interfaces/aztec-node.js +354 -71
  239. package/dest/interfaces/block-builder.d.ts +5 -1
  240. package/dest/interfaces/block-builder.d.ts.map +1 -1
  241. package/dest/interfaces/block_response.d.ts +90 -0
  242. package/dest/interfaces/block_response.d.ts.map +1 -0
  243. package/dest/interfaces/block_response.js +30 -0
  244. package/dest/interfaces/chain_tips.d.ts +50 -0
  245. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  246. package/dest/interfaces/chain_tips.js +11 -0
  247. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  248. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  249. package/dest/interfaces/checkpoint_parameter.js +18 -0
  250. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  251. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  252. package/dest/interfaces/checkpoint_response.js +26 -0
  253. package/dest/interfaces/client.d.ts +9 -2
  254. package/dest/interfaces/client.d.ts.map +1 -1
  255. package/dest/interfaces/client.js +7 -1
  256. package/dest/interfaces/configs.d.ts +63 -134
  257. package/dest/interfaces/configs.d.ts.map +1 -1
  258. package/dest/interfaces/configs.js +13 -2
  259. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  260. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  261. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  262. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  263. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  264. package/dest/interfaces/l1_publish_info.js +26 -0
  265. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  266. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  267. package/dest/interfaces/l2_logs_source.js +5 -0
  268. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  269. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  270. package/dest/interfaces/p2p-bootstrap.js +8 -2
  271. package/dest/interfaces/p2p.d.ts +46 -7
  272. package/dest/interfaces/p2p.d.ts.map +1 -1
  273. package/dest/interfaces/p2p.js +41 -6
  274. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  275. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  276. package/dest/interfaces/prover-agent.d.ts +5 -23
  277. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  278. package/dest/interfaces/prover-agent.js +4 -1
  279. package/dest/interfaces/prover-client.d.ts +7 -29
  280. package/dest/interfaces/prover-client.d.ts.map +1 -1
  281. package/dest/interfaces/prover-client.js +0 -3
  282. package/dest/interfaces/prover-node.d.ts +8 -3
  283. package/dest/interfaces/prover-node.d.ts.map +1 -1
  284. package/dest/interfaces/prover-node.js +30 -14
  285. package/dest/interfaces/proving-job-source.js +24 -4
  286. package/dest/interfaces/proving-job.d.ts +763 -5814
  287. package/dest/interfaces/proving-job.d.ts.map +1 -1
  288. package/dest/interfaces/proving-job.js +1 -1
  289. package/dest/interfaces/public_storage_override.d.ts +22 -0
  290. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  291. package/dest/interfaces/public_storage_override.js +7 -0
  292. package/dest/interfaces/server.d.ts +6 -2
  293. package/dest/interfaces/server.d.ts.map +1 -1
  294. package/dest/interfaces/server.js +5 -1
  295. package/dest/interfaces/slasher.d.ts +25 -65
  296. package/dest/interfaces/slasher.d.ts.map +1 -1
  297. package/dest/interfaces/slasher.js +8 -4
  298. package/dest/interfaces/tx_provider.d.ts +6 -1
  299. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  300. package/dest/interfaces/validator.d.ts +55 -248
  301. package/dest/interfaces/validator.d.ts.map +1 -1
  302. package/dest/interfaces/validator.js +8 -2
  303. package/dest/interfaces/world_state.d.ts +2 -2
  304. package/dest/interfaces/world_state.d.ts.map +1 -1
  305. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  306. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  307. package/dest/kernel/hints/key_validation_request.js +20 -18
  308. package/dest/kernel/index.d.ts +5 -1
  309. package/dest/kernel/index.d.ts.map +1 -1
  310. package/dest/kernel/index.js +4 -0
  311. package/dest/kernel/log_hash.d.ts +6 -2
  312. package/dest/kernel/log_hash.d.ts.map +1 -1
  313. package/dest/kernel/log_hash.js +21 -9
  314. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  315. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  316. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  317. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  318. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  319. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  320. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  321. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  322. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  323. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  324. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  325. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  326. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  327. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  328. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  329. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  330. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  331. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  332. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  333. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  334. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  335. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  336. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  337. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  338. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  339. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  340. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  341. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  342. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  343. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  344. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  345. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  346. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  347. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  348. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  349. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  350. package/dest/kernel/public_call_request.d.ts +15 -30
  351. package/dest/kernel/public_call_request.d.ts.map +1 -1
  352. package/dest/kernel/public_call_request.js +16 -7
  353. package/dest/keys/derivation.d.ts +6 -2
  354. package/dest/keys/derivation.d.ts.map +1 -1
  355. package/dest/keys/derivation.js +16 -6
  356. package/dest/keys/public_key.d.ts +22 -3
  357. package/dest/keys/public_key.d.ts.map +1 -1
  358. package/dest/keys/public_key.js +20 -1
  359. package/dest/keys/public_keys.d.ts +55 -82
  360. package/dest/keys/public_keys.d.ts.map +1 -1
  361. package/dest/keys/public_keys.js +102 -74
  362. package/dest/kv-store/config.d.ts +3 -6
  363. package/dest/kv-store/config.d.ts.map +1 -1
  364. package/dest/kv-store/config.js +2 -7
  365. package/dest/l1-contracts/index.d.ts +2 -2
  366. package/dest/l1-contracts/index.d.ts.map +1 -1
  367. package/dest/l1-contracts/index.js +1 -1
  368. package/dest/logs/app_tagging_secret.d.ts +46 -0
  369. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  370. package/dest/logs/app_tagging_secret.js +109 -0
  371. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  372. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  373. package/dest/logs/app_tagging_secret_kind.js +17 -0
  374. package/dest/logs/contract_class_log.d.ts +16 -34
  375. package/dest/logs/contract_class_log.d.ts.map +1 -1
  376. package/dest/logs/contract_class_log.js +11 -9
  377. package/dest/logs/index.d.ts +7 -7
  378. package/dest/logs/index.d.ts.map +1 -1
  379. package/dest/logs/index.js +6 -6
  380. package/dest/logs/log_cursor.d.ts +51 -0
  381. package/dest/logs/log_cursor.d.ts.map +1 -0
  382. package/dest/logs/log_cursor.js +82 -0
  383. package/dest/logs/log_result.d.ts +54 -0
  384. package/dest/logs/log_result.d.ts.map +1 -0
  385. package/dest/logs/log_result.js +56 -0
  386. package/dest/logs/logs_query.d.ts +82 -0
  387. package/dest/logs/logs_query.d.ts.map +1 -0
  388. package/dest/logs/logs_query.js +50 -0
  389. package/dest/logs/message_context.d.ts +6 -8
  390. package/dest/logs/message_context.d.ts.map +1 -1
  391. package/dest/logs/message_context.js +27 -9
  392. package/dest/logs/pending_tagged_log.d.ts +2 -3
  393. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  394. package/dest/logs/pending_tagged_log.js +2 -2
  395. package/dest/logs/pre_tag.d.ts +11 -24
  396. package/dest/logs/pre_tag.d.ts.map +1 -1
  397. package/dest/logs/pre_tag.js +2 -2
  398. package/dest/logs/private_log.d.ts +7 -12
  399. package/dest/logs/private_log.d.ts.map +1 -1
  400. package/dest/logs/private_log.js +6 -3
  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 +13 -31
  414. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  415. package/dest/logs/tagging_index_range.js +2 -2
  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/l2_to_l1_membership.d.ts +43 -6
  426. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  427. package/dest/messaging/l2_to_l1_membership.js +72 -12
  428. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  429. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  430. package/dest/messaging/l2_to_l1_message.js +21 -12
  431. package/dest/noir/index.d.ts +3 -1
  432. package/dest/noir/index.d.ts.map +1 -1
  433. package/dest/note/note.d.ts +2 -2
  434. package/dest/note/note.d.ts.map +1 -1
  435. package/dest/note/note_dao.d.ts +1 -1
  436. package/dest/note/note_dao.d.ts.map +1 -1
  437. package/dest/note/note_dao.js +1 -4
  438. package/dest/p2p/block_proposal.d.ts +31 -14
  439. package/dest/p2p/block_proposal.d.ts.map +1 -1
  440. package/dest/p2p/block_proposal.js +57 -39
  441. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  442. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  443. package/dest/p2p/checkpoint_attestation.js +23 -24
  444. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  445. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  446. package/dest/p2p/checkpoint_proposal.js +59 -51
  447. package/dest/p2p/consensus_payload.d.ts +26 -20
  448. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  449. package/dest/p2p/consensus_payload.js +38 -19
  450. package/dest/p2p/gossipable.d.ts +4 -4
  451. package/dest/p2p/gossipable.d.ts.map +1 -1
  452. package/dest/p2p/signature_utils.d.ts +28 -19
  453. package/dest/p2p/signature_utils.d.ts.map +1 -1
  454. package/dest/p2p/signature_utils.js +118 -21
  455. package/dest/p2p/signed_txs.d.ts +15 -13
  456. package/dest/p2p/signed_txs.d.ts.map +1 -1
  457. package/dest/p2p/signed_txs.js +26 -24
  458. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  459. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  460. package/dest/parity/parity_base_private_inputs.js +7 -5
  461. package/dest/parity/parity_public_inputs.d.ts +8 -4
  462. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  463. package/dest/parity/parity_public_inputs.js +6 -3
  464. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  465. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  466. package/dest/proofs/chonk_proof.d.ts +57 -7
  467. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  468. package/dest/proofs/chonk_proof.js +112 -15
  469. package/dest/proofs/recursive_proof.d.ts +2 -2
  470. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  471. package/dest/rollup/block_headers_hash.d.ts +1 -1
  472. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  473. package/dest/rollup/block_headers_hash.js +8 -2
  474. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  475. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  476. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  477. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  478. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  479. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  480. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  481. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  482. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  483. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  484. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  485. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  486. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  487. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  488. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  489. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  490. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  491. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  492. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  493. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  494. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  495. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  496. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  497. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  498. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  499. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  500. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  501. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  502. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  503. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  504. package/dest/schemas/schemas.d.ts +32 -78
  505. package/dest/schemas/schemas.d.ts.map +1 -1
  506. package/dest/schemas/schemas.js +2 -2
  507. package/dest/slashing/helpers.d.ts +2 -2
  508. package/dest/slashing/helpers.d.ts.map +1 -1
  509. package/dest/slashing/helpers.js +10 -7
  510. package/dest/slashing/index.d.ts +2 -3
  511. package/dest/slashing/index.d.ts.map +1 -1
  512. package/dest/slashing/index.js +1 -2
  513. package/dest/slashing/serialization.d.ts +2 -6
  514. package/dest/slashing/serialization.d.ts.map +1 -1
  515. package/dest/slashing/serialization.js +0 -60
  516. package/dest/slashing/types.d.ts +18 -112
  517. package/dest/slashing/types.d.ts.map +1 -1
  518. package/dest/slashing/types.js +16 -24
  519. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  520. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  521. package/dest/slashing/{tally.js → votes.js} +1 -1
  522. package/dest/snapshots/types.d.ts +15 -78
  523. package/dest/snapshots/types.d.ts.map +1 -1
  524. package/dest/stats/stats.d.ts +2 -2
  525. package/dest/stats/stats.d.ts.map +1 -1
  526. package/dest/tests/factories.d.ts +25 -32
  527. package/dest/tests/factories.d.ts.map +1 -1
  528. package/dest/tests/factories.js +85 -82
  529. package/dest/tests/mocks.d.ts +8 -5
  530. package/dest/tests/mocks.d.ts.map +1 -1
  531. package/dest/tests/mocks.js +45 -56
  532. package/dest/timetable/budgets.d.ts +57 -0
  533. package/dest/timetable/budgets.d.ts.map +1 -0
  534. package/dest/timetable/budgets.js +56 -0
  535. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  536. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  537. package/dest/timetable/build_proposer_timetable.js +17 -0
  538. package/dest/timetable/consensus_timetable.d.ts +70 -0
  539. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  540. package/dest/timetable/consensus_timetable.js +89 -0
  541. package/dest/timetable/index.d.ts +5 -37
  542. package/dest/timetable/index.d.ts.map +1 -1
  543. package/dest/timetable/index.js +4 -39
  544. package/dest/timetable/proposer_timetable.d.ts +106 -0
  545. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  546. package/dest/timetable/proposer_timetable.js +132 -0
  547. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  548. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  549. package/dest/trees/append_only_tree_snapshot.js +6 -3
  550. package/dest/trees/nullifier_leaf.d.ts +19 -42
  551. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  552. package/dest/trees/nullifier_leaf.js +3 -0
  553. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  554. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  555. package/dest/trees/nullifier_membership_witness.js +2 -14
  556. package/dest/trees/public_data_leaf.d.ts +21 -53
  557. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  558. package/dest/trees/public_data_witness.d.ts +16 -58
  559. package/dest/trees/public_data_witness.d.ts.map +1 -1
  560. package/dest/tx/block_header.d.ts +5 -4
  561. package/dest/tx/block_header.d.ts.map +1 -1
  562. package/dest/tx/block_header.js +7 -4
  563. package/dest/tx/call_context.d.ts +4 -14
  564. package/dest/tx/call_context.d.ts.map +1 -1
  565. package/dest/tx/capsule.d.ts +7 -3
  566. package/dest/tx/capsule.d.ts.map +1 -1
  567. package/dest/tx/capsule.js +9 -3
  568. package/dest/tx/fee_provider.d.ts +10 -0
  569. package/dest/tx/fee_provider.d.ts.map +1 -0
  570. package/dest/tx/fee_provider.js +1 -0
  571. package/dest/tx/function_data.d.ts +4 -10
  572. package/dest/tx/function_data.d.ts.map +1 -1
  573. package/dest/tx/global_variable_builder.d.ts +3 -4
  574. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  575. package/dest/tx/global_variables.d.ts +16 -49
  576. package/dest/tx/global_variables.d.ts.map +1 -1
  577. package/dest/tx/global_variables.js +8 -12
  578. package/dest/tx/hashed_values.d.ts +4 -3
  579. package/dest/tx/hashed_values.d.ts.map +1 -1
  580. package/dest/tx/hashed_values.js +6 -3
  581. package/dest/tx/in_tx.d.ts +5 -17
  582. package/dest/tx/in_tx.d.ts.map +1 -1
  583. package/dest/tx/index.d.ts +2 -1
  584. package/dest/tx/index.d.ts.map +1 -1
  585. package/dest/tx/index.js +1 -0
  586. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  587. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  588. package/dest/tx/indexed_tx_effect.js +9 -6
  589. package/dest/tx/partial_state_reference.d.ts +22 -65
  590. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  591. package/dest/tx/partial_state_reference.js +6 -3
  592. package/dest/tx/private_execution_result.d.ts +6 -16
  593. package/dest/tx/private_execution_result.d.ts.map +1 -1
  594. package/dest/tx/profiling.d.ts +54 -352
  595. package/dest/tx/profiling.d.ts.map +1 -1
  596. package/dest/tx/profiling.js +4 -4
  597. package/dest/tx/protocol_contracts.d.ts +5 -9
  598. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  599. package/dest/tx/proven_tx.d.ts +30 -74
  600. package/dest/tx/proven_tx.d.ts.map +1 -1
  601. package/dest/tx/proven_tx.js +6 -0
  602. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  603. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  604. package/dest/tx/public_call_request_with_calldata.js +6 -3
  605. package/dest/tx/simulated_tx.d.ts +64 -1143
  606. package/dest/tx/simulated_tx.d.ts.map +1 -1
  607. package/dest/tx/simulated_tx.js +13 -11
  608. package/dest/tx/state_reference.d.ts +30 -117
  609. package/dest/tx/state_reference.d.ts.map +1 -1
  610. package/dest/tx/state_reference.js +6 -4
  611. package/dest/tx/tree_snapshots.d.ts +27 -84
  612. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  613. package/dest/tx/tree_snapshots.js +6 -4
  614. package/dest/tx/tx.d.ts +22 -13
  615. package/dest/tx/tx.d.ts.map +1 -1
  616. package/dest/tx/tx.js +44 -22
  617. package/dest/tx/tx_constant_data.d.ts +4 -3
  618. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  619. package/dest/tx/tx_constant_data.js +6 -3
  620. package/dest/tx/tx_context.d.ts +32 -131
  621. package/dest/tx/tx_context.d.ts.map +1 -1
  622. package/dest/tx/tx_context.js +6 -6
  623. package/dest/tx/tx_hash.d.ts +6 -4
  624. package/dest/tx/tx_hash.d.ts.map +1 -1
  625. package/dest/tx/tx_hash.js +13 -5
  626. package/dest/tx/tx_receipt.d.ts +144 -63
  627. package/dest/tx/tx_receipt.d.ts.map +1 -1
  628. package/dest/tx/tx_receipt.js +143 -60
  629. package/dest/tx/validator/error_texts.d.ts +6 -2
  630. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  631. package/dest/tx/validator/error_texts.js +7 -1
  632. package/dest/tx/validator/tx_validator.d.ts +5 -27
  633. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  634. package/dest/tx/validator/tx_validator.js +0 -4
  635. package/dest/types/shared.d.ts +4 -12
  636. package/dest/types/shared.d.ts.map +1 -1
  637. package/dest/types/shared.js +6 -12
  638. package/dest/update-checker/dev_version.d.ts +3 -0
  639. package/dest/update-checker/dev_version.d.ts.map +1 -0
  640. package/dest/update-checker/dev_version.js +1 -0
  641. package/dest/update-checker/index.d.ts +2 -1
  642. package/dest/update-checker/index.d.ts.map +1 -1
  643. package/dest/update-checker/index.js +1 -0
  644. package/dest/update-checker/package_version.d.ts +6 -3
  645. package/dest/update-checker/package_version.d.ts.map +1 -1
  646. package/dest/update-checker/package_version.js +8 -19
  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.js +1 -1
  653. package/dest/vks/verification_key.d.ts +4 -139
  654. package/dest/vks/verification_key.d.ts.map +1 -1
  655. package/dest/vks/verification_key.js +5 -126
  656. package/dest/world-state/genesis_data.d.ts +13 -0
  657. package/dest/world-state/genesis_data.d.ts.map +1 -0
  658. package/dest/world-state/genesis_data.js +7 -0
  659. package/dest/world-state/index.d.ts +2 -1
  660. package/dest/world-state/index.d.ts.map +1 -1
  661. package/dest/world-state/index.js +1 -0
  662. package/dest/world-state/world_state_revision.d.ts +15 -26
  663. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  664. package/dest/world-state/world_state_revision.js +7 -1
  665. package/package.json +12 -11
  666. package/src/abi/abi.ts +78 -21
  667. package/src/abi/authorization_selector.ts +2 -8
  668. package/src/abi/buffer.ts +25 -4
  669. package/src/abi/contract_artifact.ts +30 -6
  670. package/src/abi/decoder.ts +23 -78
  671. package/src/abi/encoder.ts +42 -6
  672. package/src/abi/event_selector.ts +2 -8
  673. package/src/abi/function_selector.ts +4 -13
  674. package/src/abi/function_signature_decoder.ts +77 -0
  675. package/src/abi/index.ts +1 -0
  676. package/src/abi/note_selector.ts +3 -12
  677. package/src/abi/selector.ts +1 -1
  678. package/src/abi/utils.ts +6 -4
  679. package/src/avm/avm.ts +5 -0
  680. package/src/avm/message_pack.ts +12 -3
  681. package/src/avm/revert_code.ts +19 -39
  682. package/src/aztec-address/index.ts +15 -12
  683. package/src/block/attestation_info.ts +11 -11
  684. package/src/block/block_data.ts +3 -4
  685. package/src/block/block_hash.ts +21 -14
  686. package/src/block/block_parameter.ts +72 -4
  687. package/src/block/index.ts +0 -1
  688. package/src/block/l2_block_info.ts +8 -6
  689. package/src/block/l2_block_source.ts +216 -147
  690. package/src/block/l2_block_stream/interfaces.ts +42 -6
  691. package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
  692. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  693. package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
  694. package/src/block/proposal/attestations_and_signers.ts +32 -17
  695. package/src/block/test/l2_tips_store_test_suite.ts +198 -18
  696. package/src/checkpoint/checkpoint.ts +13 -3
  697. package/src/checkpoint/checkpoint_data.ts +44 -4
  698. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  699. package/src/checkpoint/digest.ts +28 -0
  700. package/src/checkpoint/index.ts +3 -0
  701. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  702. package/src/checkpoint/validate.ts +16 -6
  703. package/src/config/chain-config.ts +13 -16
  704. package/src/config/index.ts +1 -1
  705. package/src/config/network-consensus-config.ts +302 -0
  706. package/src/config/sequencer-config.ts +68 -9
  707. package/src/contract/complete_address.ts +7 -3
  708. package/src/contract/contract_address.ts +6 -6
  709. package/src/contract/contract_instance.ts +11 -2
  710. package/src/contract/index.ts +0 -2
  711. package/src/contract/interfaces/contract_class.ts +2 -82
  712. package/src/contract/interfaces/contract_instance.ts +6 -2
  713. package/src/contract/interfaces/node-info.ts +11 -0
  714. package/src/contract/private_function.ts +3 -1
  715. package/src/database-version/version_manager.ts +17 -0
  716. package/src/deserialization/index.ts +35 -2
  717. package/src/epoch-helpers/index.ts +24 -0
  718. package/src/file-store/factory.ts +13 -4
  719. package/src/file-store/http.ts +29 -10
  720. package/src/file-store/index.ts +1 -0
  721. package/src/gas/README.md +123 -0
  722. package/src/gas/fee_math.ts +120 -0
  723. package/src/gas/gas.ts +8 -3
  724. package/src/gas/gas_fees.ts +26 -13
  725. package/src/gas/gas_settings.ts +63 -15
  726. package/src/gas/index.ts +2 -0
  727. package/src/gas/tx_gas_limits.ts +123 -0
  728. package/src/ha-signing/config.ts +14 -18
  729. package/src/ha-signing/index.ts +3 -1
  730. package/src/ha-signing/local_config.ts +2 -2
  731. package/src/ha-signing/types.ts +48 -34
  732. package/src/hash/hash.ts +34 -2
  733. package/src/interfaces/api_limit.ts +1 -1
  734. package/src/interfaces/archiver.ts +88 -93
  735. package/src/interfaces/aztec-node-admin.ts +36 -21
  736. package/src/interfaces/aztec-node-debug.ts +55 -0
  737. package/src/interfaces/aztec-node.ts +389 -259
  738. package/src/interfaces/block-builder.ts +4 -0
  739. package/src/interfaces/block_response.ts +92 -0
  740. package/src/interfaces/chain_tips.ts +24 -0
  741. package/src/interfaces/checkpoint_parameter.ts +20 -0
  742. package/src/interfaces/checkpoint_response.ts +84 -0
  743. package/src/interfaces/client.ts +8 -1
  744. package/src/interfaces/configs.ts +64 -7
  745. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  746. package/src/interfaces/l1_publish_info.ts +40 -0
  747. package/src/interfaces/l2_logs_source.ts +13 -42
  748. package/src/interfaces/merkle_tree_operations.ts +3 -2
  749. package/src/interfaces/p2p-bootstrap.ts +2 -2
  750. package/src/interfaces/p2p.ts +59 -19
  751. package/src/interfaces/private_kernel_prover.ts +88 -0
  752. package/src/interfaces/prover-agent.ts +1 -1
  753. package/src/interfaces/prover-client.ts +3 -8
  754. package/src/interfaces/prover-node.ts +19 -12
  755. package/src/interfaces/proving-job-source.ts +4 -4
  756. package/src/interfaces/proving-job.ts +3 -3
  757. package/src/interfaces/public_storage_override.ts +26 -0
  758. package/src/interfaces/server.ts +5 -1
  759. package/src/interfaces/slasher.ts +17 -10
  760. package/src/interfaces/tx_provider.ts +6 -0
  761. package/src/interfaces/validator.ts +45 -15
  762. package/src/interfaces/world_state.ts +1 -1
  763. package/src/kernel/hints/key_validation_request.ts +18 -16
  764. package/src/kernel/index.ts +4 -0
  765. package/src/kernel/log_hash.ts +29 -9
  766. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  767. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  768. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  769. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  770. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  771. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  772. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  773. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  774. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  775. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  776. package/src/kernel/public_call_request.ts +22 -7
  777. package/src/keys/derivation.ts +21 -9
  778. package/src/keys/public_key.ts +26 -2
  779. package/src/keys/public_keys.ts +124 -110
  780. package/src/kv-store/config.ts +3 -10
  781. package/src/l1-contracts/index.ts +1 -1
  782. package/src/logs/app_tagging_secret.ts +137 -0
  783. package/src/logs/app_tagging_secret_kind.ts +21 -0
  784. package/src/logs/contract_class_log.ts +15 -5
  785. package/src/logs/index.ts +6 -6
  786. package/src/logs/log_cursor.ts +110 -0
  787. package/src/logs/log_result.ts +104 -0
  788. package/src/logs/logs_query.ts +138 -0
  789. package/src/logs/message_context.ts +22 -8
  790. package/src/logs/pending_tagged_log.ts +1 -3
  791. package/src/logs/pre_tag.ts +3 -6
  792. package/src/logs/private_log.ts +9 -3
  793. package/src/logs/query_all_logs_by_tags.ts +98 -0
  794. package/src/logs/shared_secret_derivation.ts +21 -10
  795. package/src/logs/siloed_tag.ts +20 -11
  796. package/src/logs/tag.ts +8 -8
  797. package/src/logs/tagging_index_range.ts +4 -10
  798. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  799. package/src/messaging/index.ts +1 -0
  800. package/src/messaging/l1_to_l2_message.ts +12 -9
  801. package/src/messaging/l2_to_l1_membership.ts +108 -19
  802. package/src/messaging/l2_to_l1_message.ts +29 -9
  803. package/src/noir/index.ts +2 -0
  804. package/src/note/note_dao.ts +1 -4
  805. package/src/p2p/block_proposal.ts +111 -36
  806. package/src/p2p/checkpoint_attestation.ts +27 -31
  807. package/src/p2p/checkpoint_proposal.ts +128 -73
  808. package/src/p2p/consensus_payload.ts +59 -28
  809. package/src/p2p/gossipable.ts +4 -4
  810. package/src/p2p/signature_utils.ts +110 -25
  811. package/src/p2p/signed_txs.ts +46 -28
  812. package/src/parity/parity_base_private_inputs.ts +10 -4
  813. package/src/parity/parity_public_inputs.ts +9 -2
  814. package/src/proofs/chonk_proof.ts +132 -12
  815. package/src/rollup/block_headers_hash.ts +11 -2
  816. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  817. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  818. package/src/schemas/schemas.ts +6 -1
  819. package/src/slashing/helpers.ts +13 -9
  820. package/src/slashing/index.ts +1 -2
  821. package/src/slashing/serialization.ts +1 -81
  822. package/src/slashing/types.ts +24 -49
  823. package/src/slashing/{tally.ts → votes.ts} +1 -1
  824. package/src/stats/stats.ts +4 -0
  825. package/src/tests/factories.ts +109 -111
  826. package/src/tests/mocks.ts +72 -71
  827. package/src/timetable/README.md +609 -0
  828. package/src/timetable/budgets.ts +87 -0
  829. package/src/timetable/build_proposer_timetable.ts +42 -0
  830. package/src/timetable/consensus_timetable.ts +126 -0
  831. package/src/timetable/index.ts +4 -66
  832. package/src/timetable/proposer_timetable.ts +190 -0
  833. package/src/timetable/timetable-example.svg +108 -0
  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 +10 -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 +18 -6
  845. package/src/tx/partial_state_reference.ts +8 -3
  846. package/src/tx/profiling.ts +4 -4
  847. package/src/tx/proven_tx.ts +6 -0
  848. package/src/tx/public_call_request_with_calldata.ts +8 -3
  849. package/src/tx/simulated_tx.ts +22 -21
  850. package/src/tx/state_reference.ts +9 -4
  851. package/src/tx/tree_snapshots.ts +9 -4
  852. package/src/tx/tx.ts +60 -24
  853. package/src/tx/tx_constant_data.ts +8 -3
  854. package/src/tx/tx_context.ts +8 -3
  855. package/src/tx/tx_hash.ts +20 -5
  856. package/src/tx/tx_receipt.ts +265 -85
  857. package/src/tx/validator/error_texts.ts +10 -1
  858. package/src/tx/validator/tx_validator.ts +1 -5
  859. package/src/types/shared.ts +8 -13
  860. package/src/update-checker/dev_version.ts +2 -0
  861. package/src/update-checker/index.ts +1 -0
  862. package/src/update-checker/package_version.ts +10 -23
  863. package/src/validators/schemas.ts +6 -4
  864. package/src/validators/types.ts +21 -2
  865. package/src/versioning/versioning.ts +1 -1
  866. package/src/vks/verification_key.ts +5 -184
  867. package/src/world-state/genesis_data.ts +27 -0
  868. package/src/world-state/index.ts +1 -0
  869. package/src/world-state/world_state_revision.ts +9 -1
  870. package/dest/abi/mocked_keys.d.ts +0 -2
  871. package/dest/abi/mocked_keys.d.ts.map +0 -1
  872. package/dest/abi/mocked_keys.js +0 -1
  873. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  874. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  875. package/dest/block/checkpointed_l2_block.js +0 -46
  876. package/dest/config/pipelining-config.d.ts +0 -19
  877. package/dest/config/pipelining-config.d.ts.map +0 -1
  878. package/dest/config/pipelining-config.js +0 -18
  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/epoch-prover.d.ts +0 -57
  886. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  887. package/dest/interfaces/epoch-prover.js +0 -1
  888. package/dest/interfaces/get_logs_response.d.ts +0 -97
  889. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  890. package/dest/interfaces/get_logs_response.js +0 -12
  891. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  892. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  893. package/dest/l1-contracts/slash_factory.js +0 -158
  894. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  895. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  896. package/dest/logs/extended_contract_class_log.js +0 -67
  897. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  898. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  899. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  900. package/dest/logs/extended_public_log.d.ts +0 -106
  901. package/dest/logs/extended_public_log.d.ts.map +0 -1
  902. package/dest/logs/extended_public_log.js +0 -73
  903. package/dest/logs/log_filter.d.ts +0 -25
  904. package/dest/logs/log_filter.d.ts.map +0 -1
  905. package/dest/logs/log_filter.js +0 -12
  906. package/dest/logs/log_id.d.ts +0 -85
  907. package/dest/logs/log_id.d.ts.map +0 -1
  908. package/dest/logs/log_id.js +0 -94
  909. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  910. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  911. package/dest/logs/tx_scoped_l2_log.js +0 -77
  912. package/dest/slashing/empire.d.ts +0 -31
  913. package/dest/slashing/empire.d.ts.map +0 -1
  914. package/dest/slashing/empire.js +0 -87
  915. package/src/abi/mocked_keys.ts +0 -2
  916. package/src/block/checkpointed_l2_block.ts +0 -70
  917. package/src/config/pipelining-config.ts +0 -31
  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/epoch-prover.ts +0 -72
  921. package/src/interfaces/get_logs_response.ts +0 -35
  922. package/src/l1-contracts/slash_factory.ts +0 -180
  923. package/src/logs/extended_contract_class_log.ts +0 -87
  924. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  925. package/src/logs/extended_public_log.ts +0 -94
  926. package/src/logs/log_filter.ts +0 -36
  927. package/src/logs/log_id.ts +0 -125
  928. package/src/logs/tx_scoped_l2_log.ts +0 -114
  929. package/src/slashing/empire.ts +0 -104
@@ -1,94 +0,0 @@
1
- import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
3
- import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
4
- import { Fr } from '@aztec/foundation/curves/bn254';
5
- import { BufferReader } from '@aztec/foundation/serialize';
6
- import { z } from 'zod';
7
- import { BlockHash } from '../block/block_hash.js';
8
- import { schemas } from '../schemas/index.js';
9
- import { TxHash } from '../tx/tx_hash.js';
10
- /** A globally unique log id. */ export class LogId {
11
- blockNumber;
12
- blockHash;
13
- txHash;
14
- txIndex;
15
- logIndex;
16
- constructor(/** The block number the log was emitted in. */ blockNumber, /** The hash of the block the log was emitted in. */ blockHash, /** The hash of the transaction the log was emitted in. */ txHash, /** The index of a tx in a block the log was emitted in. */ txIndex, /** The index of a log the tx was emitted in. */ logIndex){
17
- this.blockNumber = blockNumber;
18
- this.blockHash = blockHash;
19
- this.txHash = txHash;
20
- this.txIndex = txIndex;
21
- this.logIndex = logIndex;
22
- if (!Number.isInteger(blockNumber) || blockNumber < INITIAL_L2_BLOCK_NUM) {
23
- throw new Error(`Invalid block number: ${blockNumber}`);
24
- }
25
- if (!Number.isInteger(txIndex)) {
26
- throw new Error(`Invalid tx index: ${txIndex}`);
27
- }
28
- if (!Number.isInteger(logIndex)) {
29
- throw new Error(`Invalid log index: ${logIndex}`);
30
- }
31
- }
32
- static random() {
33
- return new LogId(BlockNumber(Math.floor(Math.random() * 1000) + 1), BlockHash.random(), TxHash.random(), Math.floor(Math.random() * 1000), Math.floor(Math.random() * 100));
34
- }
35
- static get schema() {
36
- return z.object({
37
- blockNumber: BlockNumberSchema,
38
- blockHash: BlockHash.schema,
39
- txHash: TxHash.schema,
40
- txIndex: schemas.Integer,
41
- logIndex: schemas.Integer
42
- }).transform(({ blockNumber, blockHash, txHash, txIndex, logIndex })=>new LogId(blockNumber, blockHash, txHash, txIndex, logIndex));
43
- }
44
- /**
45
- * Serializes log id to a buffer.
46
- * @returns A buffer containing the serialized log id.
47
- */ toBuffer() {
48
- return Buffer.concat([
49
- toBufferBE(BigInt(this.blockNumber), 4),
50
- this.blockHash.toBuffer(),
51
- this.txHash.toBuffer(),
52
- toBufferBE(BigInt(this.txIndex), 4),
53
- toBufferBE(BigInt(this.logIndex), 4)
54
- ]);
55
- }
56
- /**
57
- * Creates a LogId from a buffer.
58
- * @param buffer - A buffer containing the serialized log id.
59
- * @returns A log id.
60
- */ static fromBuffer(buffer) {
61
- const reader = BufferReader.asReader(buffer);
62
- const blockNumber = BlockNumber(reader.readNumber());
63
- const blockHash = new BlockHash(reader.readObject(Fr));
64
- const txHash = reader.readObject(TxHash);
65
- const txIndex = reader.readNumber();
66
- const logIndex = reader.readNumber();
67
- return new LogId(blockNumber, blockHash, txHash, txIndex, logIndex);
68
- }
69
- /**
70
- * Converts the LogId instance to a string.
71
- * @returns A string representation of the log id.
72
- */ toString() {
73
- return `${this.blockNumber}-${this.txIndex}-${this.logIndex}-${this.blockHash.toString()}-${this.txHash.toString()}`;
74
- }
75
- /**
76
- * Creates a LogId from a string.
77
- * @param data - A string representation of a log id.
78
- * @returns A log id.
79
- */ static fromString(data) {
80
- const [rawBlockNumber, rawTxIndex, rawLogIndex, rawBlockHash, rawTxHash] = data.split('-');
81
- const blockNumber = BlockNumber(Number(rawBlockNumber));
82
- const blockHash = BlockHash.fromString(rawBlockHash);
83
- const txHash = TxHash.fromString(rawTxHash);
84
- const txIndex = Number(rawTxIndex);
85
- const logIndex = Number(rawLogIndex);
86
- return new LogId(blockNumber, blockHash, txHash, txIndex, logIndex);
87
- }
88
- /**
89
- * Serializes log id to a human readable string.
90
- * @returns A human readable representation of the log id.
91
- */ toHumanReadable() {
92
- return `logId: (blockNumber: ${this.blockNumber}, blockHash: ${this.blockHash.toString()}, txHash: ${this.txHash.toString()}, txIndex: ${this.txIndex}, logIndex: ${this.logIndex})`;
93
- }
94
- }
@@ -1,51 +0,0 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { z } from 'zod';
4
- import { TxHash } from '../tx/tx_hash.js';
5
- import type { UInt64 } from '../types/shared.js';
6
- export declare class TxScopedL2Log {
7
- txHash: TxHash;
8
- blockNumber: BlockNumber;
9
- blockTimestamp: UInt64;
10
- logData: Fr[];
11
- noteHashes: Fr[];
12
- firstNullifier: Fr;
13
- constructor(txHash: TxHash, blockNumber: BlockNumber, blockTimestamp: UInt64, logData: Fr[], noteHashes: Fr[], firstNullifier: Fr);
14
- static get schema(): z.ZodEffects<z.ZodObject<{
15
- txHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>;
16
- blockNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
17
- blockTimestamp: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
18
- logData: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
19
- noteHashes: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
20
- firstNullifier: z.ZodType<Fr, any, string>;
21
- }, "strip", z.ZodTypeAny, {
22
- txHash: TxHash;
23
- blockNumber: number & {
24
- _branding: "BlockNumber";
25
- };
26
- blockTimestamp: bigint;
27
- logData: Fr[];
28
- noteHashes: Fr[];
29
- firstNullifier: Fr;
30
- }, {
31
- txHash: string;
32
- blockNumber: string | number | bigint;
33
- blockTimestamp: string | number | bigint;
34
- logData: string[];
35
- noteHashes: string[];
36
- firstNullifier: string;
37
- }>, TxScopedL2Log, {
38
- txHash: string;
39
- blockNumber: string | number | bigint;
40
- blockTimestamp: string | number | bigint;
41
- logData: string[];
42
- noteHashes: string[];
43
- firstNullifier: string;
44
- }>;
45
- toBuffer(): Buffer<ArrayBuffer>;
46
- static fromBuffer(buffer: Buffer): TxScopedL2Log;
47
- static getBlockNumberFromBuffer(buffer: Buffer): BlockNumber;
48
- static random(): TxScopedL2Log;
49
- equals(other: TxScopedL2Log): boolean;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc2NvcGVkX2wyX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdHhfc2NvcGVkX2wyX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxxQkFBYSxhQUFhO0lBS2YsTUFBTSxFQUFFLE1BQU07SUFJZCxXQUFXLEVBQUUsV0FBVztJQUl4QixjQUFjLEVBQUUsTUFBTTtJQUl0QixPQUFPLEVBQUUsRUFBRSxFQUFFO0lBSWIsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQU1oQixjQUFjLEVBQUUsRUFBRTtJQTFCM0IsWUFJUyxNQUFNLEVBQUUsTUFBTSxFQUlkLFdBQVcsRUFBRSxXQUFXLEVBSXhCLGNBQWMsRUFBRSxNQUFNLEVBSXRCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFJYixVQUFVLEVBQUUsRUFBRSxFQUFFLEVBTWhCLGNBQWMsRUFBRSxFQUFFLEVBQ3ZCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWNoQjtJQUVELFFBQVEsd0JBU1A7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGlCQVUvQjtJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxlQUU3QztJQUVELE1BQU0sQ0FBQyxNQUFNLGtCQVNaO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLFdBVzFCO0NBQ0YifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"tx_scoped_l2_log.d.ts","sourceRoot":"","sources":["../../src/logs/tx_scoped_l2_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AASpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,aAAa;IAKf,MAAM,EAAE,MAAM;IAId,WAAW,EAAE,WAAW;IAIxB,cAAc,EAAE,MAAM;IAItB,OAAO,EAAE,EAAE,EAAE;IAIb,UAAU,EAAE,EAAE,EAAE;IAMhB,cAAc,EAAE,EAAE;IA1B3B,YAIS,MAAM,EAAE,MAAM,EAId,WAAW,EAAE,WAAW,EAIxB,cAAc,EAAE,MAAM,EAItB,OAAO,EAAE,EAAE,EAAE,EAIb,UAAU,EAAE,EAAE,EAAE,EAMhB,cAAc,EAAE,EAAE,EACvB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAchB;IAED,QAAQ,wBASP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,iBAU/B;IAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,eAE7C;IAED,MAAM,CAAC,MAAM,kBASZ;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,WAW1B;CACF"}
@@ -1,77 +0,0 @@
1
- import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
2
- import { times } from '@aztec/foundation/collection';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { schemas as foundationSchemas } from '@aztec/foundation/schemas';
5
- import { BufferReader, bigintToUInt64BE, numToUInt32BE, serializeArrayOfBufferableToVector } from '@aztec/foundation/serialize';
6
- import { z } from 'zod';
7
- import { schemas } from '../schemas/schemas.js';
8
- import { TxHash } from '../tx/tx_hash.js';
9
- export class TxScopedL2Log {
10
- txHash;
11
- blockNumber;
12
- blockTimestamp;
13
- logData;
14
- noteHashes;
15
- firstNullifier;
16
- constructor(/*
17
- * Hash of the tx where the log is included
18
- */ txHash, /*
19
- * The block this log is included in
20
- */ blockNumber, /*
21
- * The timestamp of the block this log is included in
22
- */ blockTimestamp, /*
23
- * The log data as an array of field elements
24
- */ logData, /*
25
- * The note hashes from the tx effect
26
- */ noteHashes, /*
27
- * The first nullifier from the tx effect. Used for nonce discovery when processing notes from logs.
28
- *
29
- * (Note nonces are computed as `hash(firstNullifier, noteIndexInTx)`.)
30
- */ firstNullifier){
31
- this.txHash = txHash;
32
- this.blockNumber = blockNumber;
33
- this.blockTimestamp = blockTimestamp;
34
- this.logData = logData;
35
- this.noteHashes = noteHashes;
36
- this.firstNullifier = firstNullifier;
37
- }
38
- static get schema() {
39
- return z.object({
40
- txHash: TxHash.schema,
41
- blockNumber: BlockNumberSchema,
42
- blockTimestamp: schemas.UInt64,
43
- logData: z.array(foundationSchemas.Fr),
44
- noteHashes: z.array(foundationSchemas.Fr),
45
- firstNullifier: foundationSchemas.Fr
46
- }).transform(({ txHash, blockNumber, blockTimestamp, logData, noteHashes, firstNullifier })=>new TxScopedL2Log(txHash, blockNumber, blockTimestamp, logData, noteHashes, firstNullifier));
47
- }
48
- toBuffer() {
49
- return Buffer.concat([
50
- this.txHash.toBuffer(),
51
- numToUInt32BE(this.blockNumber),
52
- bigintToUInt64BE(this.blockTimestamp),
53
- serializeArrayOfBufferableToVector(this.logData),
54
- serializeArrayOfBufferableToVector(this.noteHashes),
55
- this.firstNullifier.toBuffer()
56
- ]);
57
- }
58
- static fromBuffer(buffer) {
59
- const reader = BufferReader.asReader(buffer);
60
- const txHash = reader.readObject(TxHash);
61
- const blockNumber = BlockNumber(reader.readNumber());
62
- const blockTimestamp = reader.readUInt64();
63
- const logData = reader.readVector(Fr);
64
- const noteHashes = reader.readVector(Fr);
65
- const firstNullifier = reader.readObject(Fr);
66
- return new TxScopedL2Log(txHash, blockNumber, blockTimestamp, logData, noteHashes, firstNullifier);
67
- }
68
- static getBlockNumberFromBuffer(buffer) {
69
- return BlockNumber(buffer.readUint32BE(Fr.SIZE_IN_BYTES));
70
- }
71
- static random() {
72
- return new TxScopedL2Log(TxHash.fromField(Fr.random()), BlockNumber(Math.floor(Math.random() * 100000) + 1), BigInt(Math.floor(Date.now() / 1000)), times(3, Fr.random), times(3, Fr.random), Fr.random());
73
- }
74
- equals(other) {
75
- return this.txHash.equals(other.txHash) && this.blockNumber === other.blockNumber && this.blockTimestamp === other.blockTimestamp && this.logData.length === other.logData.length && this.logData.every((f, i)=>f.equals(other.logData[i])) && this.noteHashes.length === other.noteHashes.length && this.noteHashes.every((h, i)=>h.equals(other.noteHashes[i])) && this.firstNullifier.equals(other.firstNullifier);
76
- }
77
- }
@@ -1,31 +0,0 @@
1
- import type { Offense, OffenseIdentifier, SlashPayload, SlashPayloadRound, ValidatorSlash } from './types.js';
2
- import { OffenseType } from './types.js';
3
- /**
4
- * Returns true if the offense is uncontroversial as in it can be verified via L1 data alone,
5
- * and does not depend on the local view of the node of the L2 p2p network.
6
- * @param offense - The offense type to check
7
- */
8
- export declare function isOffenseUncontroversial(offense: OffenseType): boolean;
9
- /** Extracts offense identifiers (validator, epoch, offense type) from an Empire-based SlashPayload */
10
- export declare function getOffenseIdentifiersFromPayload(payload: SlashPayload | SlashPayloadRound): OffenseIdentifier[];
11
- /** Creates ValidatorSlashes used to create an Empire-based SlashPayload from a set of Offenses */
12
- export declare function offensesToValidatorSlash(offenses: Offense[]): ValidatorSlash[];
13
- /**
14
- * Sorts offense data by:
15
- * - Uncontroversial offenses first
16
- * - Slash amount (descending)
17
- * - Epoch or slot (ascending, ie oldest first)
18
- * - Validator address (ascending)
19
- * - Offense type (descending)
20
- */
21
- export declare function offenseDataComparator(a: Offense, b: Offense): number;
22
- /**
23
- * Returns the first round in which the offense is eligible for being included in an Empire-based slash payload.
24
- * Should be equal to to the first round that starts strictly after the offense becomes detectable.
25
- */
26
- export declare function getFirstEligibleRoundForOffense(offense: OffenseIdentifier, constants: {
27
- slashingRoundSize: number;
28
- epochDuration: number;
29
- proofSubmissionEpochs: number;
30
- }): bigint;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2xhc2hpbmcvZW1waXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FNdEU7QUFFRCxzR0FBc0c7QUFDdEcsd0JBQWdCLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsaUJBQWlCLEVBQUUsQ0FRL0c7QUFFRCxrR0FBa0c7QUFDbEcsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FNOUU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBUXBFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQzFCLFNBQVMsRUFBRTtJQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUM3RixNQUFNLENBdUNSIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"empire.d.ts","sourceRoot":"","sources":["../../src/slashing/empire.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAMtE;AAED,sGAAsG;AACtG,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAQ/G;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAM9E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAQpE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,GAC7F,MAAM,CAuCR"}
@@ -1,87 +0,0 @@
1
- import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
- import { getRoundForSlot, getRoundsForEpoch } from './helpers.js';
3
- import { OffenseType } from './types.js';
4
- /**
5
- * Returns true if the offense is uncontroversial as in it can be verified via L1 data alone,
6
- * and does not depend on the local view of the node of the L2 p2p network.
7
- * @param offense - The offense type to check
8
- */ export function isOffenseUncontroversial(offense) {
9
- return offense === OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS || offense === OffenseType.PROPOSED_INCORRECT_ATTESTATIONS || offense === OffenseType.ATTESTED_DESCENDANT_OF_INVALID;
10
- }
11
- /** Extracts offense identifiers (validator, epoch, offense type) from an Empire-based SlashPayload */ export function getOffenseIdentifiersFromPayload(payload) {
12
- return payload.slashes.flatMap((slash)=>slash.offenses.map((o)=>({
13
- validator: slash.validator,
14
- offenseType: o.offenseType,
15
- epochOrSlot: o.epochOrSlot
16
- })));
17
- }
18
- /** Creates ValidatorSlashes used to create an Empire-based SlashPayload from a set of Offenses */ export function offensesToValidatorSlash(offenses) {
19
- return offenses.map((offense)=>({
20
- validator: offense.validator,
21
- amount: offense.amount,
22
- offenses: [
23
- {
24
- epochOrSlot: offense.epochOrSlot,
25
- offenseType: offense.offenseType
26
- }
27
- ]
28
- }));
29
- }
30
- /**
31
- * Sorts offense data by:
32
- * - Uncontroversial offenses first
33
- * - Slash amount (descending)
34
- * - Epoch or slot (ascending, ie oldest first)
35
- * - Validator address (ascending)
36
- * - Offense type (descending)
37
- */ export function offenseDataComparator(a, b) {
38
- return Number(isOffenseUncontroversial(b.offenseType)) - Number(isOffenseUncontroversial(a.offenseType)) || Number(b.amount - a.amount) || Number(a.epochOrSlot - b.epochOrSlot) || a.validator.toString().localeCompare(b.validator.toString()) || Number(b.offenseType) - Number(a.offenseType);
39
- }
40
- /**
41
- * Returns the first round in which the offense is eligible for being included in an Empire-based slash payload.
42
- * Should be equal to to the first round that starts strictly after the offense becomes detectable.
43
- */ export function getFirstEligibleRoundForOffense(offense, constants) {
44
- // TODO(palla/slash): Check for off-by-ones
45
- switch(offense.offenseType){
46
- // Inactivity is detected at the end of the epoch, so we flag it as detected in the first fresh round for the next epoch
47
- case OffenseType.INACTIVITY:
48
- {
49
- const epoch = offense.epochOrSlot;
50
- const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
51
- return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
52
- }
53
- // These offenses are detected once an epoch is pruned, which happens after the proof submission window
54
- case OffenseType.VALID_EPOCH_PRUNED:
55
- case OffenseType.DATA_WITHHOLDING:
56
- {
57
- // TODO(palla/slash): Check for off-by-ones especially here
58
- const epoch = offense.epochOrSlot;
59
- const detectedEpoch = EpochNumber.fromBigInt(epoch + BigInt(constants.proofSubmissionEpochs));
60
- return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
61
- }
62
- // These offenses are detected immediately in the slot they occur, so we assume they are detected in the first round for the following slot
63
- case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
64
- case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
65
- case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
66
- case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
67
- case OffenseType.DUPLICATE_PROPOSAL:
68
- case OffenseType.DUPLICATE_ATTESTATION:
69
- {
70
- const slot = offense.epochOrSlot;
71
- const detectedSlot = SlotNumber.fromBigInt(slot + 1n);
72
- return getRoundForSlot(detectedSlot, constants).round + 1n;
73
- }
74
- // Assume these are epoch-based offenses, even though we should never have to process these
75
- case OffenseType.UNKNOWN:
76
- {
77
- const epoch = offense.epochOrSlot;
78
- const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
79
- return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
80
- }
81
- default:
82
- {
83
- const _ = offense.offenseType;
84
- throw new Error(`Unknown offense type: ${offense.offenseType}`);
85
- }
86
- }
87
- }
@@ -1,2 +0,0 @@
1
- export const mockVerificationKey =
2
- '0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f';
@@ -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,31 +0,0 @@
1
- import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
2
-
3
- import { z } from 'zod';
4
-
5
- import { zodFor } from '../schemas/index.js';
6
-
7
- export type PipelineConfig = {
8
- /** Whether to enable build-ahead proposer pipelining. */
9
- enableProposerPipelining: boolean;
10
- };
11
-
12
- /**
13
- * Pipelining config mappings for fields that need to be shared across packages.
14
- */
15
- export const pipelineConfigMappings: ConfigMappingsType<PipelineConfig> = {
16
- enableProposerPipelining: {
17
- env: 'SEQ_ENABLE_PROPOSER_PIPELINING',
18
- description: 'Whether to enable build-ahead proposer pipelining.',
19
- ...booleanConfigHelper(false),
20
- },
21
- };
22
-
23
- export const PipelineConfigSchema = zodFor<PipelineConfig>()(
24
- z.object({
25
- enableProposerPipelining: z.boolean(),
26
- }),
27
- );
28
-
29
- export function getPipelineConfigEnvVars(): PipelineConfig {
30
- return getConfigFromMappings(pipelineConfigMappings);
31
- }
@@ -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
- }