@aztec/stdlib 0.0.1-commit.181e2d196 → 0.0.1-commit.189eedb3

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 (921) 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 +215 -356
  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/sequencer-config.d.ts +4 -2
  137. package/dest/config/sequencer-config.d.ts.map +1 -1
  138. package/dest/config/sequencer-config.js +18 -5
  139. package/dest/contract/complete_address.d.ts +3 -2
  140. package/dest/contract/complete_address.d.ts.map +1 -1
  141. package/dest/contract/complete_address.js +6 -2
  142. package/dest/contract/contract_address.d.ts +6 -6
  143. package/dest/contract/contract_address.d.ts.map +1 -1
  144. package/dest/contract/contract_address.js +6 -5
  145. package/dest/contract/contract_class_id.d.ts +2 -2
  146. package/dest/contract/contract_class_id.js +2 -2
  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/protocol_contract_addresses.d.ts +2 -12
  164. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  165. package/dest/contract/private_function.d.ts +1 -1
  166. package/dest/contract/private_function.d.ts.map +1 -1
  167. package/dest/contract/private_function.js +2 -4
  168. package/dest/database-version/database_version.d.ts +5 -11
  169. package/dest/database-version/database_version.d.ts.map +1 -1
  170. package/dest/database-version/version_manager.d.ts +6 -2
  171. package/dest/database-version/version_manager.d.ts.map +1 -1
  172. package/dest/database-version/version_manager.js +12 -1
  173. package/dest/epoch-helpers/index.d.ts +12 -20
  174. package/dest/epoch-helpers/index.d.ts.map +1 -1
  175. package/dest/epoch-helpers/index.js +16 -2
  176. package/dest/file-store/factory.d.ts +4 -3
  177. package/dest/file-store/factory.d.ts.map +1 -1
  178. package/dest/file-store/factory.js +2 -2
  179. package/dest/file-store/http.d.ts +9 -2
  180. package/dest/file-store/http.d.ts.map +1 -1
  181. package/dest/file-store/http.js +20 -9
  182. package/dest/file-store/index.d.ts +2 -1
  183. package/dest/file-store/index.d.ts.map +1 -1
  184. package/dest/gas/fee_math.d.ts +49 -0
  185. package/dest/gas/fee_math.d.ts.map +1 -0
  186. package/dest/gas/fee_math.js +80 -0
  187. package/dest/gas/gas.d.ts +9 -14
  188. package/dest/gas/gas.d.ts.map +1 -1
  189. package/dest/gas/gas.js +6 -3
  190. package/dest/gas/gas_fees.d.ts +13 -14
  191. package/dest/gas/gas_fees.d.ts.map +1 -1
  192. package/dest/gas/gas_fees.js +17 -4
  193. package/dest/gas/gas_settings.d.ts +66 -86
  194. package/dest/gas/gas_settings.d.ts.map +1 -1
  195. package/dest/gas/gas_settings.js +56 -9
  196. package/dest/gas/index.d.ts +2 -1
  197. package/dest/gas/index.d.ts.map +1 -1
  198. package/dest/gas/index.js +1 -0
  199. package/dest/ha-signing/config.d.ts +28 -57
  200. package/dest/ha-signing/config.d.ts.map +1 -1
  201. package/dest/ha-signing/config.js +24 -28
  202. package/dest/ha-signing/index.d.ts +4 -3
  203. package/dest/ha-signing/index.d.ts.map +1 -1
  204. package/dest/ha-signing/index.js +3 -2
  205. package/dest/ha-signing/local_config.d.ts +32 -0
  206. package/dest/ha-signing/local_config.d.ts.map +1 -0
  207. package/dest/ha-signing/local_config.js +24 -0
  208. package/dest/ha-signing/types.d.ts +37 -32
  209. package/dest/ha-signing/types.d.ts.map +1 -1
  210. package/dest/ha-signing/types.js +13 -6
  211. package/dest/hash/hash.d.ts +34 -1
  212. package/dest/hash/hash.d.ts.map +1 -1
  213. package/dest/hash/hash.js +63 -2
  214. package/dest/interfaces/allowed_element.d.ts +16 -16
  215. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  216. package/dest/interfaces/allowed_element.js +8 -2
  217. package/dest/interfaces/api_limit.d.ts +1 -1
  218. package/dest/interfaces/api_limit.js +1 -1
  219. package/dest/interfaces/archiver.d.ts +22 -32
  220. package/dest/interfaces/archiver.d.ts.map +1 -1
  221. package/dest/interfaces/archiver.js +214 -69
  222. package/dest/interfaces/aztec-node-admin.d.ts +80 -258
  223. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  224. package/dest/interfaces/aztec-node-admin.js +59 -16
  225. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  226. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  227. package/dest/interfaces/aztec-node-debug.js +21 -0
  228. package/dest/interfaces/aztec-node.d.ts +114 -105
  229. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  230. package/dest/interfaces/aztec-node.js +311 -68
  231. package/dest/interfaces/block-builder.d.ts +40 -11
  232. package/dest/interfaces/block-builder.d.ts.map +1 -1
  233. package/dest/interfaces/block-builder.js +12 -5
  234. package/dest/interfaces/block_response.d.ts +90 -0
  235. package/dest/interfaces/block_response.d.ts.map +1 -0
  236. package/dest/interfaces/block_response.js +30 -0
  237. package/dest/interfaces/chain_tips.d.ts +50 -0
  238. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  239. package/dest/interfaces/chain_tips.js +11 -0
  240. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  241. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  242. package/dest/interfaces/checkpoint_parameter.js +18 -0
  243. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  244. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  245. package/dest/interfaces/checkpoint_response.js +26 -0
  246. package/dest/interfaces/client.d.ts +8 -2
  247. package/dest/interfaces/client.d.ts.map +1 -1
  248. package/dest/interfaces/client.js +7 -1
  249. package/dest/interfaces/configs.d.ts +56 -105
  250. package/dest/interfaces/configs.d.ts.map +1 -1
  251. package/dest/interfaces/configs.js +12 -2
  252. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  253. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  254. package/dest/interfaces/l1_publish_info.js +26 -0
  255. package/dest/interfaces/l2_logs_source.d.ts +14 -34
  256. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  257. package/dest/interfaces/l2_logs_source.js +5 -0
  258. package/dest/interfaces/merkle_tree_operations.d.ts +20 -23
  259. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  260. package/dest/interfaces/p2p-bootstrap.js +8 -2
  261. package/dest/interfaces/p2p.d.ts +15 -5
  262. package/dest/interfaces/p2p.d.ts.map +1 -1
  263. package/dest/interfaces/p2p.js +28 -5
  264. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  265. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  266. package/dest/interfaces/prover-agent.d.ts +5 -23
  267. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  268. package/dest/interfaces/prover-agent.js +4 -1
  269. package/dest/interfaces/prover-client.d.ts +9 -25
  270. package/dest/interfaces/prover-client.d.ts.map +1 -1
  271. package/dest/interfaces/prover-client.js +7 -4
  272. package/dest/interfaces/prover-node.js +22 -8
  273. package/dest/interfaces/proving-job-source.js +24 -4
  274. package/dest/interfaces/proving-job.d.ts +742 -5793
  275. package/dest/interfaces/proving-job.d.ts.map +1 -1
  276. package/dest/interfaces/proving-job.js +1 -1
  277. package/dest/interfaces/public_storage_override.d.ts +22 -0
  278. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  279. package/dest/interfaces/public_storage_override.js +7 -0
  280. package/dest/interfaces/server.d.ts +6 -1
  281. package/dest/interfaces/server.d.ts.map +1 -1
  282. package/dest/interfaces/server.js +5 -0
  283. package/dest/interfaces/slasher.d.ts +25 -65
  284. package/dest/interfaces/slasher.d.ts.map +1 -1
  285. package/dest/interfaces/slasher.js +8 -4
  286. package/dest/interfaces/tx_provider.d.ts +6 -1
  287. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  288. package/dest/interfaces/validator.d.ts +70 -191
  289. package/dest/interfaces/validator.d.ts.map +1 -1
  290. package/dest/interfaces/validator.js +12 -5
  291. package/dest/interfaces/world_state.d.ts +6 -5
  292. package/dest/interfaces/world_state.d.ts.map +1 -1
  293. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  294. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  295. package/dest/kernel/hints/key_validation_request.js +20 -18
  296. package/dest/kernel/index.d.ts +5 -1
  297. package/dest/kernel/index.d.ts.map +1 -1
  298. package/dest/kernel/index.js +4 -0
  299. package/dest/kernel/log_hash.d.ts +6 -2
  300. package/dest/kernel/log_hash.d.ts.map +1 -1
  301. package/dest/kernel/log_hash.js +21 -9
  302. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  303. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  304. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  305. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  306. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  307. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  308. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  309. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  310. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  311. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  312. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  313. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  314. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  315. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  316. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  317. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  318. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  319. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  320. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +10 -6
  321. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  322. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +26 -7
  323. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  324. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  325. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  326. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  327. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  328. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  329. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  330. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  331. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  332. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  333. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  334. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  335. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  336. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  337. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  338. package/dest/kernel/public_call_request.d.ts +15 -30
  339. package/dest/kernel/public_call_request.d.ts.map +1 -1
  340. package/dest/kernel/public_call_request.js +16 -7
  341. package/dest/keys/derivation.d.ts +6 -2
  342. package/dest/keys/derivation.d.ts.map +1 -1
  343. package/dest/keys/derivation.js +16 -6
  344. package/dest/keys/public_key.d.ts +22 -3
  345. package/dest/keys/public_key.d.ts.map +1 -1
  346. package/dest/keys/public_key.js +20 -1
  347. package/dest/keys/public_keys.d.ts +55 -82
  348. package/dest/keys/public_keys.d.ts.map +1 -1
  349. package/dest/keys/public_keys.js +102 -74
  350. package/dest/kv-store/config.d.ts +14 -0
  351. package/dest/kv-store/config.d.ts.map +1 -0
  352. package/dest/kv-store/config.js +21 -0
  353. package/dest/kv-store/index.d.ts +2 -0
  354. package/dest/kv-store/index.d.ts.map +1 -0
  355. package/dest/kv-store/index.js +1 -0
  356. package/dest/l1-contracts/index.d.ts +2 -2
  357. package/dest/l1-contracts/index.d.ts.map +1 -1
  358. package/dest/l1-contracts/index.js +1 -1
  359. package/dest/logs/app_tagging_secret.d.ts +46 -0
  360. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  361. package/dest/logs/app_tagging_secret.js +109 -0
  362. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  363. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  364. package/dest/logs/app_tagging_secret_kind.js +17 -0
  365. package/dest/logs/contract_class_log.d.ts +16 -34
  366. package/dest/logs/contract_class_log.d.ts.map +1 -1
  367. package/dest/logs/contract_class_log.js +11 -9
  368. package/dest/logs/index.d.ts +8 -7
  369. package/dest/logs/index.d.ts.map +1 -1
  370. package/dest/logs/index.js +7 -6
  371. package/dest/logs/log_cursor.d.ts +51 -0
  372. package/dest/logs/log_cursor.d.ts.map +1 -0
  373. package/dest/logs/log_cursor.js +82 -0
  374. package/dest/logs/log_result.d.ts +54 -0
  375. package/dest/logs/log_result.d.ts.map +1 -0
  376. package/dest/logs/log_result.js +56 -0
  377. package/dest/logs/logs_query.d.ts +82 -0
  378. package/dest/logs/logs_query.d.ts.map +1 -0
  379. package/dest/logs/logs_query.js +50 -0
  380. package/dest/logs/message_context.d.ts +6 -8
  381. package/dest/logs/message_context.d.ts.map +1 -1
  382. package/dest/logs/message_context.js +27 -9
  383. package/dest/logs/pending_tagged_log.d.ts +2 -3
  384. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  385. package/dest/logs/pending_tagged_log.js +2 -2
  386. package/dest/logs/pre_tag.d.ts +11 -24
  387. package/dest/logs/pre_tag.d.ts.map +1 -1
  388. package/dest/logs/pre_tag.js +2 -2
  389. package/dest/logs/private_log.d.ts +7 -12
  390. package/dest/logs/private_log.d.ts.map +1 -1
  391. package/dest/logs/private_log.js +6 -3
  392. package/dest/logs/public_log.d.ts +4 -3
  393. package/dest/logs/public_log.d.ts.map +1 -1
  394. package/dest/logs/public_log.js +2 -1
  395. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  396. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  397. package/dest/logs/query_all_logs_by_tags.js +64 -0
  398. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  399. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  400. package/dest/logs/shared_secret_derivation.js +15 -9
  401. package/dest/logs/siloed_tag.d.ts +8 -7
  402. package/dest/logs/siloed_tag.d.ts.map +1 -1
  403. package/dest/logs/siloed_tag.js +13 -3
  404. package/dest/logs/tag.d.ts +5 -6
  405. package/dest/logs/tag.d.ts.map +1 -1
  406. package/dest/logs/tag.js +4 -0
  407. package/dest/logs/tagging_index_range.d.ts +22 -0
  408. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  409. package/dest/logs/tagging_index_range.js +8 -0
  410. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  411. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  412. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  413. package/dest/messaging/index.d.ts +2 -1
  414. package/dest/messaging/index.d.ts.map +1 -1
  415. package/dest/messaging/index.js +1 -0
  416. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  417. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  418. package/dest/messaging/l1_to_l2_message.js +11 -13
  419. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  420. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  421. package/dest/messaging/l2_to_l1_membership.d.ts +70 -7
  422. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  423. package/dest/messaging/l2_to_l1_membership.js +130 -27
  424. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  425. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  426. package/dest/messaging/l2_to_l1_message.js +21 -12
  427. package/dest/noir/index.d.ts +5 -3
  428. package/dest/noir/index.d.ts.map +1 -1
  429. package/dest/note/note.d.ts +2 -2
  430. package/dest/note/note.d.ts.map +1 -1
  431. package/dest/note/note_dao.d.ts +1 -1
  432. package/dest/note/note_dao.d.ts.map +1 -1
  433. package/dest/note/note_dao.js +1 -4
  434. package/dest/p2p/block_proposal.d.ts +31 -14
  435. package/dest/p2p/block_proposal.d.ts.map +1 -1
  436. package/dest/p2p/block_proposal.js +57 -39
  437. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  438. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  439. package/dest/p2p/checkpoint_attestation.js +23 -24
  440. package/dest/p2p/checkpoint_proposal.d.ts +35 -21
  441. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  442. package/dest/p2p/checkpoint_proposal.js +59 -61
  443. package/dest/p2p/consensus_payload.d.ts +26 -20
  444. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  445. package/dest/p2p/consensus_payload.js +38 -19
  446. package/dest/p2p/gossipable.d.ts +4 -4
  447. package/dest/p2p/gossipable.d.ts.map +1 -1
  448. package/dest/p2p/peer_error.d.ts +3 -1
  449. package/dest/p2p/peer_error.d.ts.map +1 -1
  450. package/dest/p2p/peer_error.js +5 -0
  451. package/dest/p2p/signature_utils.d.ts +28 -19
  452. package/dest/p2p/signature_utils.d.ts.map +1 -1
  453. package/dest/p2p/signature_utils.js +118 -21
  454. package/dest/p2p/signed_txs.d.ts +15 -13
  455. package/dest/p2p/signed_txs.d.ts.map +1 -1
  456. package/dest/p2p/signed_txs.js +26 -24
  457. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  458. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  459. package/dest/parity/parity_base_private_inputs.js +7 -5
  460. package/dest/parity/parity_public_inputs.d.ts +8 -4
  461. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  462. package/dest/parity/parity_public_inputs.js +6 -3
  463. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  464. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  465. package/dest/proofs/chonk_proof.d.ts +57 -7
  466. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  467. package/dest/proofs/chonk_proof.js +112 -15
  468. package/dest/proofs/recursive_proof.d.ts +2 -2
  469. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  470. package/dest/rollup/block_headers_hash.d.ts +1 -1
  471. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  472. package/dest/rollup/block_headers_hash.js +8 -2
  473. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  474. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  475. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  476. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  477. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  478. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  479. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  480. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  481. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  482. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  483. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  484. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  485. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  486. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  487. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  488. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  489. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  490. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  491. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  492. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  493. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  494. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  495. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  496. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  497. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  498. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  499. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  500. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  501. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  502. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  503. package/dest/schemas/schemas.d.ts +32 -78
  504. package/dest/schemas/schemas.d.ts.map +1 -1
  505. package/dest/schemas/schemas.js +2 -2
  506. package/dest/slashing/helpers.d.ts +2 -2
  507. package/dest/slashing/helpers.d.ts.map +1 -1
  508. package/dest/slashing/helpers.js +10 -7
  509. package/dest/slashing/index.d.ts +2 -3
  510. package/dest/slashing/index.d.ts.map +1 -1
  511. package/dest/slashing/index.js +1 -2
  512. package/dest/slashing/serialization.d.ts +2 -6
  513. package/dest/slashing/serialization.d.ts.map +1 -1
  514. package/dest/slashing/serialization.js +0 -60
  515. package/dest/slashing/types.d.ts +18 -112
  516. package/dest/slashing/types.d.ts.map +1 -1
  517. package/dest/slashing/types.js +16 -24
  518. package/dest/slashing/{tally.d.ts → votes.d.ts} +5 -6
  519. package/dest/slashing/votes.d.ts.map +1 -0
  520. package/dest/slashing/{tally.js → votes.js} +19 -10
  521. package/dest/snapshots/types.d.ts +15 -78
  522. package/dest/snapshots/types.d.ts.map +1 -1
  523. package/dest/stats/stats.d.ts +2 -2
  524. package/dest/stats/stats.d.ts.map +1 -1
  525. package/dest/tests/factories.d.ts +25 -32
  526. package/dest/tests/factories.d.ts.map +1 -1
  527. package/dest/tests/factories.js +82 -82
  528. package/dest/tests/mocks.d.ts +11 -6
  529. package/dest/tests/mocks.d.ts.map +1 -1
  530. package/dest/tests/mocks.js +55 -62
  531. package/dest/timetable/index.d.ts +48 -1
  532. package/dest/timetable/index.d.ts.map +1 -1
  533. package/dest/timetable/index.js +184 -14
  534. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  535. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  536. package/dest/trees/append_only_tree_snapshot.js +6 -3
  537. package/dest/trees/nullifier_leaf.d.ts +19 -42
  538. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  539. package/dest/trees/nullifier_leaf.js +3 -0
  540. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  541. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  542. package/dest/trees/nullifier_membership_witness.js +2 -14
  543. package/dest/trees/public_data_leaf.d.ts +21 -53
  544. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  545. package/dest/trees/public_data_witness.d.ts +16 -58
  546. package/dest/trees/public_data_witness.d.ts.map +1 -1
  547. package/dest/tx/block_header.d.ts +7 -4
  548. package/dest/tx/block_header.d.ts.map +1 -1
  549. package/dest/tx/block_header.js +11 -4
  550. package/dest/tx/call_context.d.ts +4 -14
  551. package/dest/tx/call_context.d.ts.map +1 -1
  552. package/dest/tx/capsule.d.ts +7 -3
  553. package/dest/tx/capsule.d.ts.map +1 -1
  554. package/dest/tx/capsule.js +9 -3
  555. package/dest/tx/fee_provider.d.ts +10 -0
  556. package/dest/tx/fee_provider.d.ts.map +1 -0
  557. package/dest/tx/fee_provider.js +1 -0
  558. package/dest/tx/function_data.d.ts +4 -10
  559. package/dest/tx/function_data.d.ts.map +1 -1
  560. package/dest/tx/global_variable_builder.d.ts +3 -4
  561. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  562. package/dest/tx/global_variables.d.ts +16 -49
  563. package/dest/tx/global_variables.d.ts.map +1 -1
  564. package/dest/tx/global_variables.js +8 -12
  565. package/dest/tx/hashed_values.d.ts +4 -3
  566. package/dest/tx/hashed_values.d.ts.map +1 -1
  567. package/dest/tx/hashed_values.js +6 -3
  568. package/dest/tx/in_tx.d.ts +5 -17
  569. package/dest/tx/in_tx.d.ts.map +1 -1
  570. package/dest/tx/index.d.ts +2 -1
  571. package/dest/tx/index.d.ts.map +1 -1
  572. package/dest/tx/index.js +1 -0
  573. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  574. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  575. package/dest/tx/indexed_tx_effect.js +9 -6
  576. package/dest/tx/partial_state_reference.d.ts +22 -65
  577. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  578. package/dest/tx/partial_state_reference.js +6 -3
  579. package/dest/tx/private_execution_result.d.ts +11 -21
  580. package/dest/tx/private_execution_result.d.ts.map +1 -1
  581. package/dest/tx/private_execution_result.js +6 -6
  582. package/dest/tx/profiling.d.ts +67 -353
  583. package/dest/tx/profiling.d.ts.map +1 -1
  584. package/dest/tx/profiling.js +17 -7
  585. package/dest/tx/protocol_contracts.d.ts +5 -9
  586. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  587. package/dest/tx/proven_tx.d.ts +30 -74
  588. package/dest/tx/proven_tx.d.ts.map +1 -1
  589. package/dest/tx/proven_tx.js +6 -0
  590. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  591. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  592. package/dest/tx/public_call_request_with_calldata.js +6 -3
  593. package/dest/tx/simulated_tx.d.ts +68 -1144
  594. package/dest/tx/simulated_tx.d.ts.map +1 -1
  595. package/dest/tx/simulated_tx.js +17 -12
  596. package/dest/tx/state_reference.d.ts +30 -117
  597. package/dest/tx/state_reference.d.ts.map +1 -1
  598. package/dest/tx/state_reference.js +6 -4
  599. package/dest/tx/tree_snapshots.d.ts +27 -84
  600. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  601. package/dest/tx/tree_snapshots.js +6 -4
  602. package/dest/tx/tx.d.ts +19 -17
  603. package/dest/tx/tx.d.ts.map +1 -1
  604. package/dest/tx/tx.js +48 -29
  605. package/dest/tx/tx_constant_data.d.ts +4 -3
  606. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  607. package/dest/tx/tx_constant_data.js +6 -3
  608. package/dest/tx/tx_context.d.ts +32 -131
  609. package/dest/tx/tx_context.d.ts.map +1 -1
  610. package/dest/tx/tx_context.js +6 -6
  611. package/dest/tx/tx_hash.d.ts +6 -4
  612. package/dest/tx/tx_hash.d.ts.map +1 -1
  613. package/dest/tx/tx_hash.js +13 -5
  614. package/dest/tx/tx_receipt.d.ts +145 -59
  615. package/dest/tx/tx_receipt.d.ts.map +1 -1
  616. package/dest/tx/tx_receipt.js +144 -58
  617. package/dest/tx/validator/error_texts.d.ts +8 -1
  618. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  619. package/dest/tx/validator/error_texts.js +9 -0
  620. package/dest/tx/validator/tx_validator.d.ts +5 -27
  621. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  622. package/dest/tx/validator/tx_validator.js +0 -4
  623. package/dest/types/shared.d.ts +4 -12
  624. package/dest/types/shared.d.ts.map +1 -1
  625. package/dest/types/shared.js +6 -12
  626. package/dest/update-checker/dev_version.d.ts +3 -0
  627. package/dest/update-checker/dev_version.d.ts.map +1 -0
  628. package/dest/update-checker/dev_version.js +1 -0
  629. package/dest/update-checker/index.d.ts +4 -2
  630. package/dest/update-checker/index.d.ts.map +1 -1
  631. package/dest/update-checker/index.js +3 -1
  632. package/dest/update-checker/package_version.d.ts +6 -0
  633. package/dest/update-checker/package_version.d.ts.map +1 -0
  634. package/dest/update-checker/package_version.js +13 -0
  635. package/dest/update-checker/version_checker.d.ts +25 -0
  636. package/dest/update-checker/version_checker.d.ts.map +1 -0
  637. package/dest/update-checker/version_checker.js +50 -0
  638. package/dest/validators/errors.d.ts +6 -1
  639. package/dest/validators/errors.d.ts.map +1 -1
  640. package/dest/validators/errors.js +7 -0
  641. package/dest/validators/schemas.d.ts +147 -614
  642. package/dest/validators/schemas.d.ts.map +1 -1
  643. package/dest/validators/schemas.js +6 -4
  644. package/dest/validators/types.d.ts +20 -3
  645. package/dest/validators/types.d.ts.map +1 -1
  646. package/dest/versioning/versioning.d.ts +4 -2
  647. package/dest/versioning/versioning.d.ts.map +1 -1
  648. package/dest/versioning/versioning.js +5 -2
  649. package/dest/vks/verification_key.d.ts +4 -139
  650. package/dest/vks/verification_key.d.ts.map +1 -1
  651. package/dest/vks/verification_key.js +5 -126
  652. package/dest/world-state/genesis_data.d.ts +13 -0
  653. package/dest/world-state/genesis_data.d.ts.map +1 -0
  654. package/dest/world-state/genesis_data.js +7 -0
  655. package/dest/world-state/index.d.ts +2 -1
  656. package/dest/world-state/index.d.ts.map +1 -1
  657. package/dest/world-state/index.js +1 -0
  658. package/dest/world-state/world_state_revision.d.ts +11 -39
  659. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  660. package/dest/world-state/world_state_revision.js +7 -21
  661. package/package.json +14 -12
  662. package/src/abi/abi.ts +78 -21
  663. package/src/abi/authorization_selector.ts +2 -8
  664. package/src/abi/buffer.ts +25 -4
  665. package/src/abi/contract_artifact.ts +11 -6
  666. package/src/abi/decoder.ts +36 -79
  667. package/src/abi/encoder.ts +83 -7
  668. package/src/abi/event_metadata_definition.ts +2 -0
  669. package/src/abi/event_selector.ts +2 -8
  670. package/src/abi/function_selector.ts +4 -13
  671. package/src/abi/function_signature_decoder.ts +77 -0
  672. package/src/abi/index.ts +1 -0
  673. package/src/abi/note_selector.ts +3 -12
  674. package/src/abi/selector.ts +1 -1
  675. package/src/abi/utils.ts +31 -4
  676. package/src/avm/avm.ts +5 -0
  677. package/src/avm/message_pack.ts +12 -3
  678. package/src/avm/revert_code.ts +19 -39
  679. package/src/aztec-address/index.ts +15 -12
  680. package/src/block/attestation_info.ts +11 -11
  681. package/src/block/block_data.ts +3 -4
  682. package/src/block/block_hash.ts +21 -14
  683. package/src/block/block_parameter.ts +72 -4
  684. package/src/block/index.ts +0 -1
  685. package/src/block/l2_block.ts +13 -1
  686. package/src/block/l2_block_info.ts +8 -6
  687. package/src/block/l2_block_source.ts +213 -144
  688. package/src/block/l2_block_stream/interfaces.ts +6 -2
  689. package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
  690. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  691. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  692. package/src/block/proposal/attestations_and_signers.ts +32 -17
  693. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  694. package/src/checkpoint/checkpoint.ts +23 -4
  695. package/src/checkpoint/checkpoint_data.ts +44 -4
  696. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  697. package/src/checkpoint/digest.ts +28 -0
  698. package/src/checkpoint/index.ts +4 -0
  699. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  700. package/src/checkpoint/validate.ts +230 -0
  701. package/src/config/chain-config.ts +13 -16
  702. package/src/config/sequencer-config.ts +34 -6
  703. package/src/contract/complete_address.ts +7 -3
  704. package/src/contract/contract_address.ts +7 -7
  705. package/src/contract/contract_class_id.ts +2 -2
  706. package/src/contract/contract_instance.ts +11 -2
  707. package/src/contract/index.ts +0 -2
  708. package/src/contract/interfaces/contract_class.ts +2 -82
  709. package/src/contract/interfaces/contract_instance.ts +6 -2
  710. package/src/contract/private_function.ts +3 -1
  711. package/src/database-version/version_manager.ts +17 -0
  712. package/src/epoch-helpers/index.ts +27 -0
  713. package/src/file-store/factory.ts +13 -4
  714. package/src/file-store/http.ts +29 -10
  715. package/src/file-store/index.ts +1 -0
  716. package/src/gas/README.md +154 -0
  717. package/src/gas/fee_math.ts +120 -0
  718. package/src/gas/gas.ts +8 -3
  719. package/src/gas/gas_fees.ts +26 -13
  720. package/src/gas/gas_settings.ts +73 -15
  721. package/src/gas/index.ts +1 -0
  722. package/src/ha-signing/config.ts +56 -53
  723. package/src/ha-signing/index.ts +12 -1
  724. package/src/ha-signing/local_config.ts +46 -0
  725. package/src/ha-signing/types.ts +48 -34
  726. package/src/hash/hash.ts +63 -2
  727. package/src/interfaces/allowed_element.ts +28 -4
  728. package/src/interfaces/api_limit.ts +1 -1
  729. package/src/interfaces/archiver.ts +89 -92
  730. package/src/interfaces/aztec-node-admin.ts +35 -20
  731. package/src/interfaces/aztec-node-debug.ts +40 -0
  732. package/src/interfaces/aztec-node.ts +313 -245
  733. package/src/interfaces/block-builder.ts +58 -13
  734. package/src/interfaces/block_response.ts +92 -0
  735. package/src/interfaces/chain_tips.ts +24 -0
  736. package/src/interfaces/checkpoint_parameter.ts +20 -0
  737. package/src/interfaces/checkpoint_response.ts +84 -0
  738. package/src/interfaces/client.ts +7 -1
  739. package/src/interfaces/configs.ts +54 -4
  740. package/src/interfaces/l1_publish_info.ts +40 -0
  741. package/src/interfaces/l2_logs_source.ts +13 -39
  742. package/src/interfaces/merkle_tree_operations.ts +20 -22
  743. package/src/interfaces/p2p-bootstrap.ts +2 -2
  744. package/src/interfaces/p2p.ts +35 -15
  745. package/src/interfaces/private_kernel_prover.ts +88 -0
  746. package/src/interfaces/prover-agent.ts +1 -1
  747. package/src/interfaces/prover-client.ts +10 -5
  748. package/src/interfaces/prover-node.ts +7 -7
  749. package/src/interfaces/proving-job-source.ts +4 -4
  750. package/src/interfaces/proving-job.ts +3 -3
  751. package/src/interfaces/public_storage_override.ts +26 -0
  752. package/src/interfaces/server.ts +5 -0
  753. package/src/interfaces/slasher.ts +17 -10
  754. package/src/interfaces/tx_provider.ts +6 -0
  755. package/src/interfaces/validator.ts +78 -38
  756. package/src/interfaces/world_state.ts +5 -4
  757. package/src/kernel/hints/key_validation_request.ts +18 -16
  758. package/src/kernel/index.ts +4 -0
  759. package/src/kernel/log_hash.ts +29 -9
  760. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  761. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  762. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  763. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  764. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +38 -14
  765. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  766. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  767. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  768. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  769. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  770. package/src/kernel/public_call_request.ts +22 -7
  771. package/src/keys/derivation.ts +21 -9
  772. package/src/keys/public_key.ts +26 -2
  773. package/src/keys/public_keys.ts +124 -110
  774. package/src/kv-store/config.ts +29 -0
  775. package/src/kv-store/index.ts +1 -0
  776. package/src/l1-contracts/index.ts +1 -1
  777. package/src/logs/app_tagging_secret.ts +137 -0
  778. package/src/logs/app_tagging_secret_kind.ts +21 -0
  779. package/src/logs/contract_class_log.ts +15 -5
  780. package/src/logs/index.ts +7 -6
  781. package/src/logs/log_cursor.ts +110 -0
  782. package/src/logs/log_result.ts +104 -0
  783. package/src/logs/logs_query.ts +138 -0
  784. package/src/logs/message_context.ts +22 -8
  785. package/src/logs/pending_tagged_log.ts +1 -3
  786. package/src/logs/pre_tag.ts +3 -6
  787. package/src/logs/private_log.ts +9 -3
  788. package/src/logs/public_log.ts +4 -2
  789. package/src/logs/query_all_logs_by_tags.ts +98 -0
  790. package/src/logs/shared_secret_derivation.ts +21 -10
  791. package/src/logs/siloed_tag.ts +20 -11
  792. package/src/logs/tag.ts +8 -8
  793. package/src/logs/tagging_index_range.ts +18 -0
  794. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  795. package/src/messaging/index.ts +1 -0
  796. package/src/messaging/l1_to_l2_message.ts +12 -9
  797. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  798. package/src/messaging/l2_to_l1_membership.ts +189 -35
  799. package/src/messaging/l2_to_l1_message.ts +29 -9
  800. package/src/noir/index.ts +4 -2
  801. package/src/note/note_dao.ts +1 -4
  802. package/src/p2p/block_proposal.ts +111 -36
  803. package/src/p2p/checkpoint_attestation.ts +27 -31
  804. package/src/p2p/checkpoint_proposal.ts +126 -85
  805. package/src/p2p/consensus_payload.ts +59 -28
  806. package/src/p2p/gossipable.ts +4 -4
  807. package/src/p2p/peer_error.ts +7 -0
  808. package/src/p2p/signature_utils.ts +110 -25
  809. package/src/p2p/signed_txs.ts +46 -28
  810. package/src/parity/parity_base_private_inputs.ts +10 -4
  811. package/src/parity/parity_public_inputs.ts +9 -2
  812. package/src/proofs/chonk_proof.ts +132 -12
  813. package/src/rollup/block_headers_hash.ts +11 -2
  814. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  815. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  816. package/src/schemas/schemas.ts +6 -1
  817. package/src/slashing/helpers.ts +13 -9
  818. package/src/slashing/index.ts +1 -2
  819. package/src/slashing/serialization.ts +1 -81
  820. package/src/slashing/types.ts +24 -49
  821. package/src/slashing/{tally.ts → votes.ts} +22 -4
  822. package/src/stats/stats.ts +4 -0
  823. package/src/tests/factories.ts +103 -111
  824. package/src/tests/mocks.ts +83 -76
  825. package/src/timetable/index.ts +251 -13
  826. package/src/trees/append_only_tree_snapshot.ts +8 -3
  827. package/src/trees/nullifier_leaf.ts +4 -0
  828. package/src/trees/nullifier_membership_witness.ts +2 -12
  829. package/src/tx/block_header.ts +16 -5
  830. package/src/tx/capsule.ts +10 -2
  831. package/src/tx/fee_provider.ts +10 -0
  832. package/src/tx/global_variable_builder.ts +2 -3
  833. package/src/tx/global_variables.ts +10 -18
  834. package/src/tx/hashed_values.ts +8 -3
  835. package/src/tx/index.ts +1 -0
  836. package/src/tx/indexed_tx_effect.ts +18 -6
  837. package/src/tx/partial_state_reference.ts +8 -3
  838. package/src/tx/private_execution_result.ts +5 -5
  839. package/src/tx/profiling.ts +15 -6
  840. package/src/tx/proven_tx.ts +6 -0
  841. package/src/tx/public_call_request_with_calldata.ts +8 -3
  842. package/src/tx/simulated_tx.ts +30 -22
  843. package/src/tx/state_reference.ts +9 -4
  844. package/src/tx/tree_snapshots.ts +9 -4
  845. package/src/tx/tx.ts +63 -35
  846. package/src/tx/tx_constant_data.ts +8 -3
  847. package/src/tx/tx_context.ts +8 -3
  848. package/src/tx/tx_hash.ts +20 -5
  849. package/src/tx/tx_receipt.ts +267 -82
  850. package/src/tx/validator/error_texts.ts +11 -0
  851. package/src/tx/validator/tx_validator.ts +1 -5
  852. package/src/types/shared.ts +8 -13
  853. package/src/update-checker/dev_version.ts +2 -0
  854. package/src/update-checker/index.ts +3 -1
  855. package/src/update-checker/package_version.ts +17 -0
  856. package/src/update-checker/version_checker.ts +65 -0
  857. package/src/validators/errors.ts +9 -0
  858. package/src/validators/schemas.ts +6 -4
  859. package/src/validators/types.ts +21 -2
  860. package/src/versioning/versioning.ts +5 -2
  861. package/src/vks/verification_key.ts +5 -184
  862. package/src/world-state/genesis_data.ts +27 -0
  863. package/src/world-state/index.ts +1 -0
  864. package/src/world-state/world_state_revision.ts +9 -34
  865. package/dest/abi/mocked_keys.d.ts +0 -2
  866. package/dest/abi/mocked_keys.d.ts.map +0 -1
  867. package/dest/abi/mocked_keys.js +0 -1
  868. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  869. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  870. package/dest/block/checkpointed_l2_block.js +0 -46
  871. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  872. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  873. package/dest/contract/private_function_membership_proof.js +0 -124
  874. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  875. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  876. package/dest/contract/utility_function_membership_proof.js +0 -87
  877. package/dest/interfaces/get_logs_response.d.ts +0 -97
  878. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  879. package/dest/interfaces/get_logs_response.js +0 -12
  880. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  881. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  882. package/dest/l1-contracts/slash_factory.js +0 -158
  883. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  884. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  885. package/dest/logs/extended_contract_class_log.js +0 -67
  886. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  887. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  888. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  889. package/dest/logs/extended_public_log.d.ts +0 -106
  890. package/dest/logs/extended_public_log.d.ts.map +0 -1
  891. package/dest/logs/extended_public_log.js +0 -73
  892. package/dest/logs/log_filter.d.ts +0 -22
  893. package/dest/logs/log_filter.d.ts.map +0 -1
  894. package/dest/logs/log_filter.js +0 -11
  895. package/dest/logs/log_id.d.ts +0 -85
  896. package/dest/logs/log_id.d.ts.map +0 -1
  897. package/dest/logs/log_id.js +0 -94
  898. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  899. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  900. package/dest/logs/tx_scoped_l2_log.js +0 -70
  901. package/dest/slashing/empire.d.ts +0 -31
  902. package/dest/slashing/empire.d.ts.map +0 -1
  903. package/dest/slashing/empire.js +0 -87
  904. package/dest/slashing/tally.d.ts.map +0 -1
  905. package/dest/update-checker/update-checker.d.ts +0 -49
  906. package/dest/update-checker/update-checker.d.ts.map +0 -1
  907. package/dest/update-checker/update-checker.js +0 -130
  908. package/src/abi/mocked_keys.ts +0 -2
  909. package/src/block/checkpointed_l2_block.ts +0 -70
  910. package/src/contract/private_function_membership_proof.ts +0 -167
  911. package/src/contract/utility_function_membership_proof.ts +0 -118
  912. package/src/interfaces/get_logs_response.ts +0 -35
  913. package/src/l1-contracts/slash_factory.ts +0 -180
  914. package/src/logs/extended_contract_class_log.ts +0 -87
  915. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  916. package/src/logs/extended_public_log.ts +0 -94
  917. package/src/logs/log_filter.ts +0 -31
  918. package/src/logs/log_id.ts +0 -125
  919. package/src/logs/tx_scoped_l2_log.ts +0 -98
  920. package/src/slashing/empire.ts +0 -104
  921. package/src/update-checker/update-checker.ts +0 -166
package/src/tx/tx.ts CHANGED
@@ -1,14 +1,19 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { DA_GAS_PER_FIELD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
2
+ import { type BaseBuffer32, Buffer32 } from '@aztec/foundation/buffer';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import type { ZodFor } from '@aztec/foundation/schemas';
4
- import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
5
- import type { FieldsOf } from '@aztec/foundation/types';
5
+ import {
6
+ BufferReader,
7
+ BufferSink,
8
+ serializeArrayOfBufferableToVector,
9
+ serializeArrayToSink,
10
+ serializeToSink,
11
+ } from '@aztec/foundation/serialize';
12
+ import { type FieldsOf, unfreeze } from '@aztec/foundation/types';
6
13
 
7
14
  import { z } from 'zod';
8
15
 
9
16
  import type { GasSettings } from '../gas/gas_settings.js';
10
- import type { GetPublicLogsResponse } from '../interfaces/get_logs_response.js';
11
- import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
12
17
  import type { PublicCallRequest } from '../kernel/index.js';
13
18
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
14
19
  import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
@@ -20,6 +25,14 @@ import { HashedValues } from './hashed_values.js';
20
25
  import { PublicCallRequestWithCalldata } from './public_call_request_with_calldata.js';
21
26
  import { TxHash } from './tx_hash.js';
22
27
 
28
+ // Static presize hint for the BufferSink the no-sink Tx.toBuffer() path allocates. Empirically a
29
+ // public-with-enqueued-calls Tx serialized by the bootstrapped bench (yarn-project/stdlib/src/tx/
30
+ // tx_bench.test.ts) is ~129128 bytes; a private-only Tx is ~81763 bytes. 128 KiB covers both shapes
31
+ // without a single doubling-growth `ensure()` resize on the cold path. Real-world Txs that happen to
32
+ // exceed this still serialize correctly — the sink falls back to its standard doubling growth — just
33
+ // with the existing cost.
34
+ const TX_SINK_PRESIZE_BYTES = 131072;
35
+
23
36
  /**
24
37
  * The interface of an L2 transaction.
25
38
  */
@@ -63,7 +76,7 @@ export class Tx extends Gossipable {
63
76
  // docs:end:tx_class
64
77
 
65
78
  // Gossipable method
66
- override generateP2PMessageIdentifier(): Promise<Buffer32> {
79
+ override generateP2PMessageIdentifier(): Promise<BaseBuffer32> {
67
80
  return Promise.resolve(new Buffer32(this.getTxHash().toBuffer()));
68
81
  }
69
82
 
@@ -126,14 +139,15 @@ export class Tx extends Gossipable {
126
139
  * Serializes the Tx object into a Buffer.
127
140
  * @returns Buffer representation of the Tx object.
128
141
  */
129
- toBuffer() {
130
- return serializeToBuffer([
131
- this.txHash,
132
- this.data,
133
- this.chonkProof,
134
- serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
135
- serializeArrayOfBufferableToVector(this.publicFunctionCalldata, 1),
136
- ]);
142
+ toBuffer(): Buffer;
143
+ toBuffer(sink: BufferSink): void;
144
+ toBuffer(sink?: BufferSink): Buffer | void {
145
+ if (!sink) {
146
+ return BufferSink.serialize(this, TX_SINK_PRESIZE_BYTES);
147
+ }
148
+ serializeToSink(sink, this.txHash, this.data, this.chonkProof);
149
+ serializeArrayToSink(sink, this.contractClassLogFields, 1);
150
+ serializeArrayToSink(sink, this.publicFunctionCalldata, 1);
137
151
  }
138
152
 
139
153
  static get schema(): ZodFor<Tx> {
@@ -179,15 +193,6 @@ export class Tx extends Gossipable {
179
193
  return this.txHash.equals(expectedHash);
180
194
  }
181
195
 
182
- /**
183
- * Gets public logs emitted by this tx.
184
- * @param logsSource - An instance of `L2LogsSource` which can be used to obtain the logs.
185
- * @returns The requested logs.
186
- */
187
- public getPublicLogs(logsSource: L2LogsSource): Promise<GetPublicLogsResponse> {
188
- return logsSource.getPublicLogs({ txHash: this.getTxHash() });
189
- }
190
-
191
196
  getContractClassLogs(): ContractClassLog[] {
192
197
  const logHashes = this.data.getNonEmptyContractClassLogsHashes();
193
198
  return logHashes.map((logHash, i) =>
@@ -264,16 +269,24 @@ export class Tx extends Gossipable {
264
269
  }
265
270
 
266
271
  /**
267
- * Estimates the tx size based on its private effects. Note that the actual size of the tx
268
- * after processing will probably be larger, as public execution would generate more data.
272
+ * Returns the number of fields this tx's effects will occupy in the blob,
273
+ * based on its private side effects only. Accurate for txs without public calls.
274
+ * For txs with public calls, the actual size will be larger due to public execution outputs.
269
275
  */
270
- getEstimatedPrivateTxEffectsSize() {
271
- return (
272
- this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES +
273
- this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES +
274
- this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES +
275
- this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES
276
- );
276
+ getPrivateTxEffectsSizeInFields(): number {
277
+ // 3 fields overhead: tx_start_marker, tx_hash, tx_fee.
278
+ // TX_DA_GAS_OVERHEAD is defined as N * DA_GAS_PER_FIELD, so this division is always exact.
279
+ const overheadFields = TX_DA_GAS_OVERHEAD / DA_GAS_PER_FIELD;
280
+ const noteHashes = this.data.getNonEmptyNoteHashes().length;
281
+ const nullifiers = this.data.getNonEmptyNullifiers().length;
282
+ const l2ToL1Msgs = this.data.getNonEmptyL2ToL1Msgs().length;
283
+ // Each private log occupies (emittedLength + 1) fields: content + length field
284
+ const privateLogFields = this.data.getNonEmptyPrivateLogs().reduce((acc, log) => acc + log.emittedLength + 1, 0);
285
+ // Each contract class log occupies (length + 1) fields: content + contract address
286
+ const contractClassLogFields = this.data
287
+ .getNonEmptyContractClassLogsHashes()
288
+ .reduce((acc, log) => acc + log.logHash.length + 1, 0);
289
+ return overheadFields + noteHashes + nullifiers + l2ToL1Msgs + privateLogFields + contractClassLogFields;
277
290
  }
278
291
 
279
292
  /**
@@ -292,6 +305,16 @@ export class Tx extends Gossipable {
292
305
  return clonedTx;
293
306
  }
294
307
 
308
+ /**
309
+ * Returns a copy of this tx with its proof stripped (replaced by an empty {@link ChonkProof}). Used when archiving
310
+ * txs or shipping a pending tx over RPC where the proof is not needed. Note that {@link Tx.clone} with
311
+ * `cloneProof = false` does not strip the proof; it shares the original.
312
+ * @returns A new tx with an empty proof.
313
+ */
314
+ withoutProof(): Tx {
315
+ return new Tx(this.txHash, this.data, ChonkProof.empty(), this.contractClassLogFields, this.publicFunctionCalldata);
316
+ }
317
+
295
318
  /**
296
319
  * Creates a random tx.
297
320
  * @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
@@ -309,7 +332,7 @@ export class Tx extends Gossipable {
309
332
 
310
333
  /** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */
311
334
  public async recomputeHash(): Promise<TxHash> {
312
- (this as any).txHash = await Tx.computeTxHash(this);
335
+ unfreeze(this).txHash = await Tx.computeTxHash(this);
313
336
  return this.txHash;
314
337
  }
315
338
 
@@ -336,7 +359,12 @@ export class TxArray extends Array<Tx> {
336
359
  }
337
360
  }
338
361
 
339
- public toBuffer(): Buffer {
340
- return serializeArrayOfBufferableToVector(this);
362
+ public toBuffer(): Buffer;
363
+ public toBuffer(sink: BufferSink): void;
364
+ public toBuffer(sink?: BufferSink): Buffer | void {
365
+ if (!sink) {
366
+ return serializeArrayOfBufferableToVector(this);
367
+ }
368
+ serializeArrayToSink(sink, [...this]);
341
369
  }
342
370
  }
@@ -1,6 +1,6 @@
1
1
  import { TX_CONSTANT_DATA_LENGTH } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
3
+ import { BufferReader, BufferSink, FieldReader, serializeToFields, serializeToSink } from '@aztec/foundation/serialize';
4
4
  import type { FieldsOf } from '@aztec/foundation/types';
5
5
 
6
6
  import { BlockHeader } from './block_header.js';
@@ -57,8 +57,13 @@ export class TxConstantData {
57
57
  );
58
58
  }
59
59
 
60
- toBuffer() {
61
- return serializeToBuffer(...TxConstantData.getFields(this));
60
+ toBuffer(): Buffer;
61
+ toBuffer(sink: BufferSink): void;
62
+ toBuffer(sink?: BufferSink): Buffer | void {
63
+ if (!sink) {
64
+ return BufferSink.serialize(this);
65
+ }
66
+ serializeToSink(sink, ...TxConstantData.getFields(this));
62
67
  }
63
68
 
64
69
  static empty() {
@@ -1,7 +1,7 @@
1
1
  import { TX_CONTEXT_LENGTH } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { schemas } from '@aztec/foundation/schemas';
4
- import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
4
+ import { BufferReader, BufferSink, FieldReader, serializeToFields, serializeToSink } from '@aztec/foundation/serialize';
5
5
  import type { FieldsOf } from '@aztec/foundation/types';
6
6
 
7
7
  import { z } from 'zod';
@@ -49,8 +49,13 @@ export class TxContext {
49
49
  * Serialize as a buffer.
50
50
  * @returns The buffer.
51
51
  */
52
- toBuffer() {
53
- return serializeToBuffer(...TxContext.getFields(this));
52
+ toBuffer(): Buffer;
53
+ toBuffer(sink: BufferSink): void;
54
+ toBuffer(sink?: BufferSink): Buffer | void {
55
+ if (!sink) {
56
+ return BufferSink.serialize(this);
57
+ }
58
+ serializeToSink(sink, ...TxContext.getFields(this));
54
59
  }
55
60
 
56
61
  static fromFields(fields: Fr[] | FieldReader): TxContext {
package/src/tx/tx_hash.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { BufferReader, serializeArrayOfBufferableToVector } from '@aztec/foundation/serialize';
2
+ import {
3
+ BufferReader,
4
+ type BufferSink,
5
+ serializeArrayOfBufferableToVector,
6
+ serializeArrayToSink,
7
+ } from '@aztec/foundation/serialize';
3
8
 
4
9
  import { schemas } from '../schemas/index.js';
5
10
 
@@ -34,8 +39,13 @@ export class TxHash {
34
39
  return new TxHash(value);
35
40
  }
36
41
 
37
- public toBuffer() {
38
- return this.hash.toBuffer();
42
+ public toBuffer(): Buffer;
43
+ public toBuffer(sink: BufferSink): void;
44
+ public toBuffer(sink?: BufferSink): Buffer | void {
45
+ if (!sink) {
46
+ return this.hash.toBuffer();
47
+ }
48
+ this.hash.toBuffer(sink);
39
49
  }
40
50
 
41
51
  public toString() {
@@ -82,7 +92,12 @@ export class TxHashArray extends Array<TxHash> {
82
92
  }
83
93
  }
84
94
 
85
- public toBuffer(): Buffer {
86
- return serializeArrayOfBufferableToVector([...this]);
95
+ public toBuffer(): Buffer;
96
+ public toBuffer(sink: BufferSink): void;
97
+ public toBuffer(sink?: BufferSink): Buffer | void {
98
+ if (!sink) {
99
+ return serializeArrayOfBufferableToVector([...this]);
100
+ }
101
+ serializeArrayToSink(sink, [...this]);
87
102
  }
88
103
  }
@@ -1,4 +1,12 @@
1
- import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
1
+ import {
2
+ BlockNumber,
3
+ BlockNumberSchema,
4
+ EpochNumber,
5
+ EpochNumberSchema,
6
+ SlotNumber,
7
+ SlotNumberSchema,
8
+ } from '@aztec/foundation/branded-types';
9
+ import type { DefineIfFlag, FieldsOf, PickDefined } from '@aztec/foundation/types';
2
10
 
3
11
  import { z } from 'zod';
4
12
 
@@ -6,6 +14,8 @@ import { RevertCode } from '../avm/revert_code.js';
6
14
  import { BlockHash } from '../block/block_hash.js';
7
15
  import { DebugLog } from '../logs/debug_log.js';
8
16
  import { type ZodFor, schemas } from '../schemas/schemas.js';
17
+ import { Tx } from './tx.js';
18
+ import { TxEffect } from './tx_effect.js';
9
19
  import { TxHash } from './tx_hash.js';
10
20
 
11
21
  /** Block inclusion/finalization status. */
@@ -15,7 +25,7 @@ export enum TxStatus {
15
25
  PROPOSED = 'proposed',
16
26
  CHECKPOINTED = 'checkpointed',
17
27
  PROVEN = 'proven',
18
- FINALIZED = 'finalized', // TODO(#13569): Implement finalized status properly
28
+ FINALIZED = 'finalized',
19
29
  }
20
30
 
21
31
  /** Tx status sorted by finalization progress. */
@@ -28,126 +38,301 @@ export const SortedTxStatuses: TxStatus[] = [
28
38
  TxStatus.FINALIZED,
29
39
  ];
30
40
 
41
+ /** The four statuses a mined transaction can hold, ordered by finalization progress. */
42
+ export const MinedTxStatuses = [TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED] as const;
43
+
44
+ /** Block finalization status of a mined transaction. */
45
+ export type MinedTxStatus = (typeof MinedTxStatuses)[number];
46
+
31
47
  /** Execution result - only set when tx is in a block. */
32
48
  export enum TxExecutionResult {
33
49
  SUCCESS = 'success',
34
- APP_LOGIC_REVERTED = 'app_logic_reverted',
35
- TEARDOWN_REVERTED = 'teardown_reverted',
36
- BOTH_REVERTED = 'both_reverted',
50
+ REVERTED = 'reverted',
51
+ }
52
+
53
+ /** Returned from a `getTxReceipt` call to the node RPC API. */
54
+ export interface TxReceiptInterface {
55
+ /** The transaction's block finalization status. */
56
+ status: TxStatus;
57
+ /** The execution result of the transaction, only set when the tx is in a block. */
58
+ executionResult?: TxExecutionResult;
59
+ /** Description of the transaction error, if any. */
60
+ error?: string;
61
+ /** The transaction fee paid for the transaction. */
62
+ transactionFee?: bigint;
63
+ /** The hash of the block containing the transaction. */
64
+ blockHash?: BlockHash;
65
+ /** The block number in which the transaction was included. */
66
+ blockNumber?: BlockNumber;
67
+ /** The slot number in which the transaction's block was built. */
68
+ slotNumber?: SlotNumber;
69
+ /** The epoch number in which the transaction was included. */
70
+ epochNumber?: EpochNumber;
71
+ /** The index of the transaction within its block. */
72
+ txIndexInBlock?: number;
73
+ /** The full transaction effect, attached when requested via `includeTxEffect`. */
74
+ txEffect?: TxEffect;
75
+ /** The pending transaction, attached when requested via `includePendingTx`. */
76
+ tx?: Tx;
77
+ /**
78
+ * Debug logs collected during public function execution. Served only when the node is in test mode and placed on
79
+ * the receipt only because it's a convenient place for it (the logs are printed out by the wallet when a mined
80
+ * tx receipt is obtained).
81
+ */
82
+ debugLogs?: DebugLog[];
83
+
84
+ /** Returns true (and narrows) if the transaction has been included in a block. */
85
+ isMined(): this is MinedTxReceipt;
86
+
87
+ /** Returns true (and narrows) if the transaction is pending. */
88
+ isPending(): this is PendingTxReceipt;
89
+
90
+ /** Returns true (and narrows) if the transaction was dropped. */
91
+ isDropped(): this is DroppedTxReceipt;
92
+
93
+ /** Returns true if the transaction was executed successfully. */
94
+ hasExecutionSucceeded(): boolean;
95
+
96
+ /** Returns true if the transaction execution reverted. */
97
+ hasExecutionReverted(): boolean;
37
98
  }
38
99
 
39
100
  /**
40
- * Represents a transaction receipt in the Aztec network.
41
- * Contains essential information about the transaction including its status, origin, and associated addresses.
42
- * REFACTOR: TxReceipt should be returned only once the tx is mined, and all its fields should be required.
43
- * We should not be using a TxReceipt to answer a query for a pending or dropped tx.
101
+ * Common surface shared by every transaction receipt variant ({@link PendingTxReceipt}, {@link DroppedTxReceipt},
102
+ * {@link MinedTxReceipt}).
103
+ *
104
+ * Every cross-variant field is declared once here, optional except for `txHash` (always present) and `status`
105
+ * (abstract, narrowed by each subclass). Declaring the fields optional on the base lets callers read a bare
106
+ * {@link TxReceipt} union (without first narrowing) and keep compiling. Use the `is*` guards to narrow to the strong
107
+ * variant type and gain access to its required fields.
44
108
  */
45
- export class TxReceipt {
109
+ abstract class TxReceiptBase {
110
+ /** The transaction's block finalization status. */
111
+ public abstract readonly status: TxStatus;
112
+ /** Description of the transaction error, if any. */
113
+ public readonly error?: string;
114
+
46
115
  constructor(
47
116
  /** A unique identifier for a transaction. */
48
- public txHash: TxHash,
49
- /** The transaction's block finalization status. */
50
- public status: TxStatus,
51
- /** The execution result of the transaction, only set when tx is in a block. */
52
- public executionResult: TxExecutionResult | undefined,
53
- /** Description of transaction error, if any. */
54
- public error: string | undefined,
55
- /** The transaction fee paid for the transaction. */
56
- public transactionFee?: bigint,
57
- /** The hash of the block containing the transaction. */
58
- public blockHash?: BlockHash,
59
- /** The block number in which the transaction was included. */
60
- public blockNumber?: BlockNumber,
61
- /**
62
- * Debug logs collected during public function execution. Served only when the node is in test mode and placed on
63
- * the receipt only because it's a convenient place for it (the logs are printed out by the wallet when a mined
64
- * tx receipt is obtained).
65
- */
66
- public debugLogs?: DebugLog[],
117
+ public readonly txHash: TxHash,
67
118
  ) {}
68
119
 
120
+ /** Returns true (and narrows) if the transaction has been included in a block. */
121
+ public isMined(): this is MinedTxReceipt {
122
+ return this instanceof MinedTxReceipt;
123
+ }
124
+
125
+ /** Returns true (and narrows) if the transaction is pending. */
126
+ public isPending(): this is PendingTxReceipt {
127
+ return this instanceof PendingTxReceipt;
128
+ }
129
+
130
+ /** Returns true (and narrows) if the transaction was dropped. */
131
+ public isDropped(): this is DroppedTxReceipt {
132
+ return this instanceof DroppedTxReceipt;
133
+ }
134
+
69
135
  /** Returns true if the transaction was executed successfully. */
70
- hasExecutionSucceeded(): boolean {
71
- return this.executionResult === TxExecutionResult.SUCCESS;
136
+ public hasExecutionSucceeded(): boolean {
137
+ return false;
72
138
  }
73
139
 
74
140
  /** Returns true if the transaction execution reverted. */
75
- hasExecutionReverted(): boolean {
76
- return this.executionResult !== undefined && this.executionResult !== TxExecutionResult.SUCCESS;
141
+ public hasExecutionReverted(): boolean {
142
+ return false;
77
143
  }
144
+ }
78
145
 
79
- /** Returns true if the transaction has been included in a block (proposed, checkpointed, proven, or finalized). */
80
- isMined(): boolean {
81
- return (
82
- this.status === TxStatus.PROPOSED ||
83
- this.status === TxStatus.CHECKPOINTED ||
84
- this.status === TxStatus.PROVEN ||
85
- this.status === TxStatus.FINALIZED
86
- );
146
+ abstract class UnminedTxReceipt extends TxReceiptBase {
147
+ public readonly executionResult: undefined = undefined;
148
+ public readonly transactionFee: undefined = undefined;
149
+ public readonly blockHash: undefined = undefined;
150
+ public readonly blockNumber: undefined = undefined;
151
+ public readonly slotNumber: undefined = undefined;
152
+ public readonly txIndexInBlock: undefined = undefined;
153
+ public readonly epochNumber: undefined = undefined;
154
+ public readonly txEffect: undefined = undefined;
155
+ }
156
+
157
+ /**
158
+ * Receipt for a transaction that is in the mempool but not yet included in a block.
159
+ */
160
+ export class PendingTxReceipt<Opts extends GetTxReceiptOptions = GetTxReceiptOptions>
161
+ extends UnminedTxReceipt
162
+ implements TxReceiptInterface
163
+ {
164
+ public override readonly status = TxStatus.PENDING;
165
+
166
+ constructor(
167
+ txHash: TxHash,
168
+ /** The pending transaction, attached when requested via `includePendingTx`. */
169
+ public readonly tx: DefineIfFlag<Opts, 'includePendingTx', Tx>,
170
+ ) {
171
+ super(txHash);
172
+ }
173
+
174
+ static empty(): PendingTxReceipt {
175
+ return new PendingTxReceipt(TxHash.zero(), undefined);
176
+ }
177
+
178
+ static from(fields: PickDefined<FieldsOf<PendingTxReceipt>>): PendingTxReceipt {
179
+ return new PendingTxReceipt(fields.txHash, fields.tx);
180
+ }
181
+
182
+ static get schema(): ZodFor<PendingTxReceipt> {
183
+ return z
184
+ .object({
185
+ txHash: TxHash.schema,
186
+ status: z.literal(TxStatus.PENDING),
187
+ tx: Tx.schema.optional(),
188
+ })
189
+ .transform(fields => PendingTxReceipt.from({ tx: undefined, ...fields }));
87
190
  }
191
+ }
192
+
193
+ /**
194
+ * Receipt for a transaction that was dropped from the mempool without being mined.
195
+ */
196
+ export class DroppedTxReceipt extends UnminedTxReceipt implements TxReceiptInterface {
197
+ public override readonly status = TxStatus.DROPPED;
198
+
199
+ public tx: undefined = undefined;
88
200
 
89
- /** Returns true if the transaction is pending. */
90
- isPending(): boolean {
91
- return this.status === TxStatus.PENDING;
201
+ constructor(
202
+ txHash: TxHash,
203
+ public override readonly error?: string,
204
+ ) {
205
+ super(txHash);
92
206
  }
93
207
 
94
- /** Returns true if the transaction was dropped. */
95
- isDropped(): boolean {
96
- return this.status === TxStatus.DROPPED;
208
+ static empty(): DroppedTxReceipt {
209
+ return new DroppedTxReceipt(TxHash.zero());
97
210
  }
98
211
 
99
- static empty() {
100
- return new TxReceipt(TxHash.zero(), TxStatus.DROPPED, undefined, undefined);
212
+ static from(fields: PickDefined<FieldsOf<DroppedTxReceipt>>): DroppedTxReceipt {
213
+ return new DroppedTxReceipt(fields.txHash, fields.error);
101
214
  }
102
215
 
103
- static get schema(): ZodFor<TxReceipt> {
216
+ static get schema(): ZodFor<DroppedTxReceipt> {
104
217
  return z
105
218
  .object({
106
219
  txHash: TxHash.schema,
107
- status: z.nativeEnum(TxStatus),
108
- executionResult: z.nativeEnum(TxExecutionResult).optional(),
220
+ status: z.literal(TxStatus.DROPPED),
109
221
  error: z.string().optional(),
110
- blockHash: BlockHash.schema.optional(),
111
- blockNumber: BlockNumberSchema.optional(),
112
- transactionFee: schemas.BigInt.optional(),
113
- debugLogs: z.array(DebugLog.schema).optional(),
114
222
  })
115
- .transform(fields => TxReceipt.from(fields));
116
- }
117
-
118
- static from(fields: {
119
- txHash: TxHash;
120
- status: TxStatus;
121
- executionResult?: TxExecutionResult;
122
- error?: string;
123
- transactionFee?: bigint;
124
- blockHash?: BlockHash;
125
- blockNumber?: BlockNumber;
126
- debugLogs?: DebugLog[];
127
- }) {
128
- return new TxReceipt(
223
+ .transform(DroppedTxReceipt.from);
224
+ }
225
+ }
226
+
227
+ /**
228
+ * Receipt for a transaction that has been included in a block (proposed, checkpointed, proven, or finalized).
229
+ * All block-related fields are required for this variant.
230
+ */
231
+ export class MinedTxReceipt<Opts extends GetTxReceiptOptions = GetTxReceiptOptions>
232
+ extends TxReceiptBase
233
+ implements TxReceiptInterface
234
+ {
235
+ public override readonly status: MinedTxStatus;
236
+
237
+ public readonly tx = undefined;
238
+
239
+ constructor(
240
+ txHash: TxHash,
241
+ status: MinedTxStatus,
242
+ public readonly executionResult: TxExecutionResult,
243
+ public readonly transactionFee: bigint,
244
+ public readonly blockHash: BlockHash,
245
+ public readonly blockNumber: BlockNumber,
246
+ public readonly slotNumber: SlotNumber,
247
+ public readonly txIndexInBlock: number,
248
+ public readonly epochNumber: EpochNumber,
249
+ public readonly txEffect: DefineIfFlag<Opts, 'includeTxEffect', TxEffect>,
250
+ public debugLogs?: DebugLog[],
251
+ ) {
252
+ super(txHash);
253
+ this.status = status;
254
+ }
255
+
256
+ public override hasExecutionSucceeded(): boolean {
257
+ return this.executionResult === TxExecutionResult.SUCCESS;
258
+ }
259
+
260
+ public override hasExecutionReverted(): boolean {
261
+ return this.executionResult !== TxExecutionResult.SUCCESS;
262
+ }
263
+
264
+ static from(fields: PickDefined<FieldsOf<MinedTxReceipt>>): MinedTxReceipt {
265
+ return new MinedTxReceipt(
129
266
  fields.txHash,
130
267
  fields.status,
131
268
  fields.executionResult,
132
- fields.error,
133
269
  fields.transactionFee,
134
270
  fields.blockHash,
135
271
  fields.blockNumber,
272
+ fields.slotNumber,
273
+ fields.txIndexInBlock,
274
+ fields.epochNumber,
275
+ fields.txEffect,
136
276
  fields.debugLogs,
137
277
  );
138
278
  }
139
279
 
280
+ static get schema(): ZodFor<MinedTxReceipt> {
281
+ return z
282
+ .object({
283
+ txHash: TxHash.schema,
284
+ status: z.enum([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]),
285
+ executionResult: z.nativeEnum(TxExecutionResult),
286
+ transactionFee: schemas.BigInt,
287
+ blockHash: BlockHash.schema,
288
+ blockNumber: BlockNumberSchema,
289
+ slotNumber: SlotNumberSchema,
290
+ txIndexInBlock: schemas.Integer,
291
+ epochNumber: EpochNumberSchema,
292
+ txEffect: TxEffect.schema.optional(),
293
+ debugLogs: z.array(DebugLog.schema).optional(),
294
+ })
295
+ .transform(fields => MinedTxReceipt.from({ txEffect: undefined, ...fields }));
296
+ }
297
+
140
298
  public static executionResultFromRevertCode(revertCode: RevertCode): TxExecutionResult {
141
- if (revertCode.equals(RevertCode.OK)) {
142
- return TxExecutionResult.SUCCESS;
143
- } else if (revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
144
- return TxExecutionResult.APP_LOGIC_REVERTED;
145
- } else if (revertCode.equals(RevertCode.TEARDOWN_REVERTED)) {
146
- return TxExecutionResult.TEARDOWN_REVERTED;
147
- } else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
148
- return TxExecutionResult.BOTH_REVERTED;
149
- } else {
150
- throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
151
- }
299
+ return revertCode.isOK() ? TxExecutionResult.SUCCESS : TxExecutionResult.REVERTED;
152
300
  }
153
301
  }
302
+
303
+ /**
304
+ * A transaction receipt summarizing the lifecycle of a transaction in the Aztec network. Discriminated over the
305
+ * transaction's status: {@link PendingTxReceipt} while in the mempool, {@link DroppedTxReceipt} once dropped, and
306
+ * {@link MinedTxReceipt} once included in a block.
307
+ */
308
+ export type TxReceipt<Opts extends GetTxReceiptOptions = GetTxReceiptOptions> =
309
+ | PendingTxReceipt<Opts>
310
+ | DroppedTxReceipt
311
+ | MinedTxReceipt<Opts>;
312
+
313
+ /**
314
+ * Zod schema for {@link TxReceipt}. Each member constrains its `status` field so the union routes
315
+ * unambiguously, giving a deterministic serialization round-trip.
316
+ */
317
+ export const TxReceiptSchema: ZodFor<TxReceipt> = z.union([
318
+ PendingTxReceipt.schema,
319
+ DroppedTxReceipt.schema,
320
+ MinedTxReceipt.schema,
321
+ ]) as ZodFor<TxReceipt>;
322
+
323
+ /** Options controlling which optional data is attached to a {@link TxReceipt}. */
324
+ export type GetTxReceiptOptions = {
325
+ /** Attach the full {@link TxEffect} (mined txs only). */
326
+ includeTxEffect?: boolean;
327
+ /** Attach the pending {@link Tx} (pending txs only). */
328
+ includePendingTx?: boolean;
329
+ /** Keep the proof on the attached pending {@link Tx}; only meaningful alongside `includePendingTx`. */
330
+ includeProof?: boolean;
331
+ };
332
+
333
+ /** Zod schema for {@link GetTxReceiptOptions}. */
334
+ export const GetTxReceiptOptionsSchema: ZodFor<GetTxReceiptOptions> = z.object({
335
+ includeTxEffect: z.boolean().optional(),
336
+ includePendingTx: z.boolean().optional(),
337
+ includeProof: z.boolean().optional(),
338
+ });