@aztec/stdlib 1.2.0 → 2.0.0-nightly.20250813

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 (324) hide show
  1. package/dest/abi/abi.d.ts +0 -67
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +1 -14
  4. package/dest/abi/authorization_selector.d.ts +52 -0
  5. package/dest/abi/authorization_selector.d.ts.map +1 -0
  6. package/dest/abi/authorization_selector.js +70 -0
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +0 -40
  9. package/dest/abi/decoder.d.ts.map +1 -1
  10. package/dest/abi/decoder.js +3 -6
  11. package/dest/abi/index.d.ts +1 -0
  12. package/dest/abi/index.d.ts.map +1 -1
  13. package/dest/abi/index.js +1 -0
  14. package/dest/avm/avm.d.ts +278 -412
  15. package/dest/avm/avm.d.ts.map +1 -1
  16. package/dest/avm/avm.js +12 -12
  17. package/dest/avm/avm_proving_request.d.ts +160 -186
  18. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  19. package/dest/block/l2_block.d.ts +8 -0
  20. package/dest/block/l2_block.d.ts.map +1 -1
  21. package/dest/block/l2_block.js +9 -0
  22. package/dest/block/l2_block_source.d.ts +446 -2
  23. package/dest/block/l2_block_source.d.ts.map +1 -1
  24. package/dest/block/l2_block_source.js +29 -0
  25. package/dest/block/proposal/committee_attestation.d.ts +3 -1
  26. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  27. package/dest/block/proposal/committee_attestation.js +3 -0
  28. package/dest/block/published_l2_block.d.ts +2 -1
  29. package/dest/block/published_l2_block.d.ts.map +1 -1
  30. package/dest/block/published_l2_block.js +6 -1
  31. package/dest/contract/contract_instance.d.ts +3 -3
  32. package/dest/contract/contract_instance.d.ts.map +1 -1
  33. package/dest/contract/contract_instance.js +3 -3
  34. package/dest/contract/interfaces/contract_class.d.ts +2 -2
  35. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +9 -9
  36. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  37. package/dest/contract/interfaces/protocol_contract_addresses.js +4 -4
  38. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  39. package/dest/contract/private_function_membership_proof.js +1 -1
  40. package/dest/contract/utility_function_membership_proof.d.ts +1 -1
  41. package/dest/contract/utility_function_membership_proof.js +1 -1
  42. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +20 -0
  43. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -0
  44. package/dest/{shared_mutable/shared_mutable_values.js → delayed_public_mutable/delayed_public_mutable_values.js} +9 -9
  45. package/dest/{shared_mutable/shared_mutable_values_with_hash.d.ts → delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts} +6 -6
  46. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -0
  47. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +30 -0
  48. package/dest/delayed_public_mutable/index.d.ts +5 -0
  49. package/dest/delayed_public_mutable/index.d.ts.map +1 -0
  50. package/dest/delayed_public_mutable/index.js +4 -0
  51. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -0
  52. package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -0
  53. package/dest/gas/gas.d.ts +1 -0
  54. package/dest/gas/gas.d.ts.map +1 -1
  55. package/dest/gas/gas.js +3 -0
  56. package/dest/hash/hash.d.ts.map +1 -1
  57. package/dest/hash/hash.js +1 -4
  58. package/dest/interfaces/archiver.d.ts.map +1 -1
  59. package/dest/interfaces/archiver.js +4 -2
  60. package/dest/interfaces/aztec-node-admin.d.ts +211 -8
  61. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  62. package/dest/interfaces/aztec-node-admin.js +9 -3
  63. package/dest/interfaces/configs.d.ts +27 -0
  64. package/dest/interfaces/configs.d.ts.map +1 -1
  65. package/dest/interfaces/configs.js +6 -1
  66. package/dest/interfaces/get_logs_response.d.ts +1 -1
  67. package/dest/interfaces/proving-job.d.ts +166 -192
  68. package/dest/interfaces/proving-job.d.ts.map +1 -1
  69. package/dest/interfaces/pxe.d.ts +3 -1
  70. package/dest/interfaces/pxe.d.ts.map +1 -1
  71. package/dest/interfaces/pxe.js +1 -1
  72. package/dest/interfaces/server.d.ts +4 -2
  73. package/dest/interfaces/server.d.ts.map +1 -1
  74. package/dest/interfaces/server.js +4 -2
  75. package/dest/interfaces/slasher.d.ts +86 -0
  76. package/dest/interfaces/slasher.d.ts.map +1 -0
  77. package/dest/interfaces/slasher.js +23 -0
  78. package/dest/interfaces/tx_provider.d.ts +24 -0
  79. package/dest/interfaces/tx_provider.d.ts.map +1 -0
  80. package/dest/kernel/claimed_length_array.d.ts +34 -0
  81. package/dest/kernel/claimed_length_array.d.ts.map +1 -0
  82. package/dest/kernel/claimed_length_array.js +58 -0
  83. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
  84. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  85. package/dest/kernel/hints/build_note_hash_read_request_hints.js +18 -20
  86. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +7 -10
  87. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  88. package/dest/kernel/hints/build_nullifier_read_request_hints.js +17 -32
  89. package/dest/kernel/hints/build_transient_data_hints.d.ts +4 -3
  90. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  91. package/dest/kernel/hints/build_transient_data_hints.js +9 -10
  92. package/dest/kernel/hints/index.d.ts +1 -2
  93. package/dest/kernel/hints/index.d.ts.map +1 -1
  94. package/dest/kernel/hints/index.js +1 -2
  95. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  96. package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
  97. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  98. package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
  99. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +5 -5
  100. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  101. package/dest/kernel/hints/private_kernel_reset_hints.js +9 -9
  102. package/dest/kernel/hints/read_request_hints.d.ts +17 -17
  103. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  104. package/dest/kernel/hints/read_request_hints.js +28 -28
  105. package/dest/kernel/hints/{transient_data_index_hint.d.ts → transient_data_squashing_hint.d.ts} +5 -5
  106. package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -0
  107. package/dest/kernel/hints/{transient_data_index_hint.js → transient_data_squashing_hint.js} +5 -5
  108. package/dest/kernel/index.d.ts +1 -0
  109. package/dest/kernel/index.d.ts.map +1 -1
  110. package/dest/kernel/index.js +1 -0
  111. package/dest/kernel/private_accumulated_data.d.ts +16 -15
  112. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  113. package/dest/kernel/private_accumulated_data.js +3 -3
  114. package/dest/kernel/private_call_data.d.ts +4 -4
  115. package/dest/kernel/private_call_data.d.ts.map +1 -1
  116. package/dest/kernel/private_call_data.js +2 -2
  117. package/dest/kernel/private_circuit_public_inputs.d.ts +26 -25
  118. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  119. package/dest/kernel/private_circuit_public_inputs.js +33 -15
  120. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +9 -0
  121. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  122. package/dest/kernel/private_kernel_circuit_public_inputs.js +8 -4
  123. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  124. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  125. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +9 -6
  126. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +11 -4
  127. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  128. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +20 -18
  129. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
  130. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  131. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +9 -10
  132. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
  133. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  134. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +11 -12
  135. package/dest/kernel/private_validation_requests.d.ts +8 -20
  136. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  137. package/dest/kernel/private_validation_requests.js +9 -21
  138. package/dest/kernel/utils/order_and_comparison.d.ts +0 -3
  139. package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
  140. package/dest/kernel/utils/order_and_comparison.js +0 -19
  141. package/dest/logs/extended_public_log.d.ts +1 -1
  142. package/dest/logs/shared_secret_derivation.d.ts +1 -1
  143. package/dest/logs/shared_secret_derivation.js +1 -1
  144. package/dest/messaging/l2_to_l1_membership.d.ts +4 -1
  145. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  146. package/dest/messaging/l2_to_l1_membership.js +49 -54
  147. package/dest/messaging/l2_to_l1_message.d.ts +2 -0
  148. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  149. package/dest/messaging/l2_to_l1_message.js +7 -0
  150. package/dest/note/notes_filter.d.ts +5 -2
  151. package/dest/note/notes_filter.d.ts.map +1 -1
  152. package/dest/note/notes_filter.js +1 -1
  153. package/dest/p2p/attestation_utils.d.ts +10 -0
  154. package/dest/p2p/attestation_utils.d.ts.map +1 -0
  155. package/dest/p2p/attestation_utils.js +21 -0
  156. package/dest/p2p/block_attestation.d.ts +3 -4
  157. package/dest/p2p/block_attestation.d.ts.map +1 -1
  158. package/dest/p2p/block_attestation.js +3 -4
  159. package/dest/p2p/block_proposal.d.ts +8 -1
  160. package/dest/p2p/block_proposal.d.ts.map +1 -1
  161. package/dest/p2p/block_proposal.js +21 -8
  162. package/dest/p2p/consensus_payload.d.ts +3 -11
  163. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  164. package/dest/p2p/consensus_payload.js +13 -22
  165. package/dest/p2p/index.d.ts +1 -0
  166. package/dest/p2p/index.d.ts.map +1 -1
  167. package/dest/p2p/index.js +1 -0
  168. package/dest/p2p/topic_type.d.ts.map +1 -1
  169. package/dest/p2p/topic_type.js +5 -3
  170. package/dest/rollup/block_root_rollup.d.ts +1 -1
  171. package/dest/slashing/index.d.ts +51 -0
  172. package/dest/slashing/index.d.ts.map +1 -0
  173. package/dest/slashing/index.js +54 -0
  174. package/dest/stats/stats.d.ts +2 -2
  175. package/dest/stats/stats.d.ts.map +1 -1
  176. package/dest/tests/factories.d.ts +0 -2
  177. package/dest/tests/factories.d.ts.map +1 -1
  178. package/dest/tests/factories.js +25 -24
  179. package/dest/tests/mocks.d.ts +2 -0
  180. package/dest/tests/mocks.d.ts.map +1 -1
  181. package/dest/tests/mocks.js +31 -22
  182. package/dest/tx/index.d.ts +0 -1
  183. package/dest/tx/index.d.ts.map +1 -1
  184. package/dest/tx/index.js +0 -1
  185. package/dest/tx/private_execution_result.d.ts +2 -2
  186. package/dest/tx/private_execution_result.d.ts.map +1 -1
  187. package/dest/tx/private_execution_result.js +11 -11
  188. package/dest/tx/processed_tx.d.ts +2 -2
  189. package/dest/tx/processed_tx.d.ts.map +1 -1
  190. package/dest/tx/processed_tx.js +4 -4
  191. package/dest/tx/proven_tx.d.ts +1 -1
  192. package/dest/tx/proven_tx.d.ts.map +1 -1
  193. package/dest/tx/proven_tx.js +7 -3
  194. package/dest/tx/simulated_tx.d.ts +11 -17
  195. package/dest/tx/simulated_tx.d.ts.map +1 -1
  196. package/dest/tx/simulated_tx.js +12 -12
  197. package/dest/tx/tx.d.ts +25 -25
  198. package/dest/tx/tx.d.ts.map +1 -1
  199. package/dest/tx/tx.js +60 -48
  200. package/dest/tx/tx_effect.d.ts +2 -2
  201. package/dest/tx/tx_effect.d.ts.map +1 -1
  202. package/dest/tx/tx_effect.js +3 -18
  203. package/dest/tx/tx_execution_request.js +2 -2
  204. package/dest/tx/tx_hash.d.ts +7 -0
  205. package/dest/tx/tx_hash.d.ts.map +1 -1
  206. package/dest/tx/tx_hash.js +19 -1
  207. package/dest/tx/tx_request.d.ts +5 -5
  208. package/dest/tx/tx_request.d.ts.map +1 -1
  209. package/dest/tx/tx_request.js +7 -7
  210. package/dest/tx/validator/error_texts.d.ts +1 -0
  211. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  212. package/dest/tx/validator/error_texts.js +1 -0
  213. package/dest/tx/validator/tx_validator.d.ts +6 -4
  214. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  215. package/dest/tx/validator/tx_validator.js +3 -0
  216. package/dest/versioning/versioning.d.ts.map +1 -1
  217. package/dest/vks/verification_key.d.ts.map +1 -1
  218. package/dest/vks/verification_key.js +4 -4
  219. package/package.json +10 -9
  220. package/src/abi/abi.ts +0 -38
  221. package/src/abi/authorization_selector.ts +95 -0
  222. package/src/abi/contract_artifact.ts +0 -49
  223. package/src/abi/decoder.ts +3 -6
  224. package/src/abi/index.ts +1 -0
  225. package/src/avm/avm.ts +7 -9
  226. package/src/block/l2_block.ts +18 -0
  227. package/src/block/l2_block_source.ts +70 -1
  228. package/src/block/proposal/committee_attestation.ts +5 -1
  229. package/src/block/published_l2_block.ts +14 -5
  230. package/src/contract/contract_instance.ts +3 -3
  231. package/src/contract/interfaces/protocol_contract_addresses.ts +5 -10
  232. package/src/contract/private_function_membership_proof.ts +1 -1
  233. package/src/contract/utility_function_membership_proof.ts +1 -1
  234. package/src/{shared_mutable/shared_mutable_values.ts → delayed_public_mutable/delayed_public_mutable_values.ts} +10 -10
  235. package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +38 -0
  236. package/src/delayed_public_mutable/index.ts +4 -0
  237. package/src/gas/gas.ts +4 -0
  238. package/src/hash/hash.ts +1 -4
  239. package/src/interfaces/archiver.ts +3 -1
  240. package/src/interfaces/aztec-node-admin.ts +19 -8
  241. package/src/interfaces/configs.ts +17 -0
  242. package/src/interfaces/pxe.ts +4 -2
  243. package/src/interfaces/server.ts +4 -2
  244. package/src/interfaces/slasher.ts +49 -0
  245. package/src/interfaces/tx_provider.ts +16 -0
  246. package/src/kernel/claimed_length_array.ts +104 -0
  247. package/src/kernel/hints/build_note_hash_read_request_hints.ts +28 -30
  248. package/src/kernel/hints/build_nullifier_read_request_hints.ts +28 -59
  249. package/src/kernel/hints/build_transient_data_hints.ts +12 -14
  250. package/src/kernel/hints/index.ts +1 -2
  251. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -16
  252. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -16
  253. package/src/kernel/hints/private_kernel_reset_hints.ts +7 -7
  254. package/src/kernel/hints/read_request_hints.ts +22 -22
  255. package/src/kernel/hints/{transient_data_index_hint.ts → transient_data_squashing_hint.ts} +5 -5
  256. package/src/kernel/index.ts +1 -0
  257. package/src/kernel/private_accumulated_data.ts +23 -23
  258. package/src/kernel/private_call_data.ts +3 -3
  259. package/src/kernel/private_circuit_public_inputs.ts +92 -68
  260. package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -1
  261. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +13 -4
  262. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
  263. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
  264. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +16 -10
  265. package/src/kernel/private_validation_requests.ts +19 -50
  266. package/src/kernel/utils/order_and_comparison.ts +0 -25
  267. package/src/logs/shared_secret_derivation.ts +1 -1
  268. package/src/messaging/l2_to_l1_membership.ts +76 -85
  269. package/src/messaging/l2_to_l1_message.ts +9 -0
  270. package/src/note/notes_filter.ts +6 -3
  271. package/src/p2p/attestation_utils.ts +35 -0
  272. package/src/p2p/block_attestation.ts +3 -4
  273. package/src/p2p/block_proposal.ts +23 -5
  274. package/src/p2p/consensus_payload.ts +10 -29
  275. package/src/p2p/index.ts +1 -0
  276. package/src/p2p/topic_type.ts +3 -1
  277. package/src/slashing/index.ts +74 -0
  278. package/src/stats/stats.ts +2 -2
  279. package/src/tests/factories.ts +37 -27
  280. package/src/tests/mocks.ts +24 -22
  281. package/src/tx/index.ts +0 -1
  282. package/src/tx/private_execution_result.ts +11 -9
  283. package/src/tx/processed_tx.ts +6 -6
  284. package/src/tx/proven_tx.ts +7 -8
  285. package/src/tx/simulated_tx.ts +13 -19
  286. package/src/tx/tx.ts +70 -57
  287. package/src/tx/tx_effect.ts +5 -20
  288. package/src/tx/tx_execution_request.ts +2 -2
  289. package/src/tx/tx_hash.ts +21 -1
  290. package/src/tx/tx_request.ts +7 -6
  291. package/src/tx/validator/error_texts.ts +1 -0
  292. package/src/tx/validator/tx_validator.ts +5 -0
  293. package/src/versioning/versioning.ts +0 -3
  294. package/src/vks/verification_key.ts +4 -7
  295. package/dest/interfaces/tx-collector.d.ts +0 -15
  296. package/dest/interfaces/tx-collector.d.ts.map +0 -1
  297. package/dest/kernel/hints/rollup_validation_requests.d.ts +0 -34
  298. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +0 -1
  299. package/dest/kernel/hints/rollup_validation_requests.js +0 -55
  300. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +0 -1
  301. package/dest/shared_mutable/index.d.ts +0 -5
  302. package/dest/shared_mutable/index.d.ts.map +0 -1
  303. package/dest/shared_mutable/index.js +0 -4
  304. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +0 -1
  305. package/dest/shared_mutable/scheduled_value_change.d.ts.map +0 -1
  306. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -20
  307. package/dest/shared_mutable/shared_mutable_values.d.ts.map +0 -1
  308. package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts.map +0 -1
  309. package/dest/shared_mutable/shared_mutable_values_with_hash.js +0 -30
  310. package/dest/tx/include_by_timestamp.d.ts +0 -54
  311. package/dest/tx/include_by_timestamp.d.ts.map +0 -1
  312. package/dest/tx/include_by_timestamp.js +0 -72
  313. package/src/interfaces/tx-collector.ts +0 -17
  314. package/src/kernel/hints/rollup_validation_requests.ts +0 -71
  315. package/src/shared_mutable/index.ts +0 -4
  316. package/src/shared_mutable/shared_mutable_values_with_hash.ts +0 -38
  317. package/src/tx/include_by_timestamp.ts +0 -90
  318. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.d.ts +0 -0
  319. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.js +0 -0
  320. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.d.ts +0 -0
  321. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.js +0 -0
  322. /package/dest/interfaces/{tx-collector.js → tx_provider.js} +0 -0
  323. /package/src/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.ts +0 -0
  324. /package/src/{shared_mutable → delayed_public_mutable}/scheduled_value_change.ts +0 -0
@@ -45,11 +45,11 @@ import {
45
45
  VK_TREE_HEIGHT,
46
46
  } from '@aztec/constants';
47
47
  import { type FieldsOf, makeHalfFullTuple, makeTuple } from '@aztec/foundation/array';
48
- import { compact } from '@aztec/foundation/collection';
48
+ import { compact, padArrayEnd } from '@aztec/foundation/collection';
49
49
  import { SchnorrSignature, poseidon2HashWithSeparator, sha256 } from '@aztec/foundation/crypto';
50
50
  import { EthAddress } from '@aztec/foundation/eth-address';
51
51
  import { BLS12Point, Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
52
- import type { Bufferable } from '@aztec/foundation/serialize';
52
+ import type { Bufferable, Serializable, Tuple } from '@aztec/foundation/serialize';
53
53
  import { MembershipWitness } from '@aztec/foundation/trees';
54
54
 
55
55
  import { FunctionSelector } from '../abi/function_selector.js';
@@ -99,8 +99,8 @@ import type { MerkleTreeReadOperations } from '../interfaces/merkle_tree_operati
99
99
  import { KeyValidationRequest } from '../kernel/hints/key_validation_request.js';
100
100
  import { KeyValidationRequestAndGenerator } from '../kernel/hints/key_validation_request_and_generator.js';
101
101
  import { ReadRequest } from '../kernel/hints/read_request.js';
102
- import { RollupValidationRequests } from '../kernel/hints/rollup_validation_requests.js';
103
102
  import {
103
+ ClaimedLengthArray,
104
104
  PartialPrivateTailPublicInputsForPublic,
105
105
  PartialPrivateTailPublicInputsForRollup,
106
106
  PrivateKernelTailCircuitPublicInputs,
@@ -109,7 +109,6 @@ import {
109
109
  PrivateToPublicAccumulatedData,
110
110
  PrivateToPublicKernelCircuitPublicInputs,
111
111
  PrivateToRollupAccumulatedData,
112
- mergeAccumulatedData,
113
112
  } from '../kernel/index.js';
114
113
  import { CountedLogHash, LogHash, ScopedLogHash } from '../kernel/log_hash.js';
115
114
  import { NoteHash } from '../kernel/note_hash.js';
@@ -167,7 +166,6 @@ import { CallContext } from '../tx/call_context.js';
167
166
  import { ContentCommitment } from '../tx/content_commitment.js';
168
167
  import { FunctionData } from '../tx/function_data.js';
169
168
  import { GlobalVariables } from '../tx/global_variables.js';
170
- import { IncludeByTimestamp } from '../tx/include_by_timestamp.js';
171
169
  import { PartialStateReference } from '../tx/partial_state_reference.js';
172
170
  import { makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/processed_tx.js';
173
171
  import { PublicCallRequestWithCalldata } from '../tx/public_call_request_with_calldata.js';
@@ -309,10 +307,6 @@ export function makeContractStorageRead(seed = 1): ContractStorageRead {
309
307
  return new ContractStorageRead(fr(seed), fr(seed + 1), seed + 2);
310
308
  }
311
309
 
312
- export function makeRollupValidationRequests(seed = 1) {
313
- return new RollupValidationRequests(new IncludeByTimestamp(true, BigInt(seed + 0x31415)));
314
- }
315
-
316
310
  function makeTxConstantData(seed = 1) {
317
311
  return new TxConstantData(makeHeader(seed), makeTxContext(seed + 0x100), new Fr(seed + 0x200), new Fr(seed + 0x201));
318
312
  }
@@ -411,9 +405,9 @@ export function makePrivateKernelTailCircuitPublicInputs(
411
405
  : undefined;
412
406
  return new PrivateKernelTailCircuitPublicInputs(
413
407
  makeTxConstantData(seed + 0x300),
414
- makeRollupValidationRequests(seed + 0x500),
415
408
  makeGas(seed + 0x600),
416
409
  makeAztecAddress(seed + 0x700),
410
+ BigInt(seed + 0x800),
417
411
  forPublic,
418
412
  forRollup,
419
413
  );
@@ -422,12 +416,12 @@ export function makePrivateKernelTailCircuitPublicInputs(
422
416
  function makePrivateToPublicKernelCircuitPublicInputs(seed = 1) {
423
417
  return new PrivateToPublicKernelCircuitPublicInputs(
424
418
  makeTxConstantData(seed),
425
- makeRollupValidationRequests(seed + 0x100),
426
419
  makePrivateToPublicAccumulatedData(seed + 0x200),
427
420
  makePrivateToPublicAccumulatedData(seed + 0x300),
428
421
  makePublicCallRequest(seed + 0x400),
429
422
  makeGas(seed + 0x500),
430
423
  makeAztecAddress(seed + 0x600),
424
+ BigInt(seed + 0x700),
431
425
  );
432
426
  }
433
427
 
@@ -442,10 +436,10 @@ export function makePrivateToRollupKernelCircuitPublicInputs(
442
436
  ): PrivateToRollupKernelCircuitPublicInputs {
443
437
  return new PrivateToRollupKernelCircuitPublicInputs(
444
438
  makeTxConstantData(seed + 0x100),
445
- makeRollupValidationRequests(seed),
446
439
  makePrivateToRollupAccumulatedData(seed, fullAccumulatedData),
447
440
  makeGas(seed + 0x600),
448
441
  makeAztecAddress(seed + 0x700),
442
+ BigInt(seed + 0x800),
449
443
  );
450
444
  }
451
445
 
@@ -562,6 +556,15 @@ export function makeTxRequest(seed = 1): TxRequest {
562
556
  });
563
557
  }
564
558
 
559
+ function makeClaimedLengthArray<T extends Serializable, N extends number>(
560
+ arraySize: N,
561
+ makeItem: (seed: number) => T,
562
+ seed: number,
563
+ length = arraySize,
564
+ ): ClaimedLengthArray<T, N> {
565
+ return new ClaimedLengthArray(makeTuple(arraySize, makeItem, seed) as Tuple<T, N>, length);
566
+ }
567
+
565
568
  /**
566
569
  * Makes arbitrary private circuit public inputs.
567
570
  * @param seed - The seed to use for generating the private circuit public inputs.
@@ -569,26 +572,30 @@ export function makeTxRequest(seed = 1): TxRequest {
569
572
  */
570
573
  export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicInputs {
571
574
  return PrivateCircuitPublicInputs.from({
572
- includeByTimestamp: new IncludeByTimestamp(true, BigInt(seed + 0x31415)),
575
+ includeByTimestamp: BigInt(seed + 0x31415),
573
576
  callContext: makeCallContext(seed, { isStaticCall: true }),
574
577
  argsHash: fr(seed + 0x100),
575
578
  returnsHash: fr(seed + 0x200),
576
579
  minRevertibleSideEffectCounter: fr(0),
577
- noteHashReadRequests: makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, makeReadRequest, seed + 0x300),
578
- nullifierReadRequests: makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, makeReadRequest, seed + 0x310),
579
- keyValidationRequestsAndGenerators: makeTuple(
580
+ noteHashReadRequests: makeClaimedLengthArray(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, makeReadRequest, seed + 0x300),
581
+ nullifierReadRequests: makeClaimedLengthArray(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, makeReadRequest, seed + 0x310),
582
+ keyValidationRequestsAndGenerators: makeClaimedLengthArray(
580
583
  MAX_KEY_VALIDATION_REQUESTS_PER_CALL,
581
584
  makeKeyValidationRequestAndGenerators,
582
585
  seed + 0x320,
583
586
  ),
584
- noteHashes: makeTuple(MAX_NOTE_HASHES_PER_CALL, makeNoteHash, seed + 0x400),
585
- nullifiers: makeTuple(MAX_NULLIFIERS_PER_CALL, makeNullifier, seed + 0x500),
586
- privateCallRequests: makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, makePrivateCallRequest, seed + 0x600),
587
- publicCallRequests: makeTuple(MAX_ENQUEUED_CALLS_PER_CALL, makeCountedPublicCallRequest, seed + 0x700),
587
+ noteHashes: makeClaimedLengthArray(MAX_NOTE_HASHES_PER_CALL, makeNoteHash, seed + 0x400),
588
+ nullifiers: makeClaimedLengthArray(MAX_NULLIFIERS_PER_CALL, makeNullifier, seed + 0x500),
589
+ privateCallRequests: makeClaimedLengthArray(
590
+ MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
591
+ makePrivateCallRequest,
592
+ seed + 0x600,
593
+ ),
594
+ publicCallRequests: makeClaimedLengthArray(MAX_ENQUEUED_CALLS_PER_CALL, makeCountedPublicCallRequest, seed + 0x700),
588
595
  publicTeardownCallRequest: makePublicCallRequest(seed + 0x800),
589
- l2ToL1Msgs: makeTuple(MAX_L2_TO_L1_MSGS_PER_CALL, makeCountedL2ToL1Message, seed + 0x800),
590
- privateLogs: makeTuple(MAX_PRIVATE_LOGS_PER_CALL, makePrivateLogData, seed + 0x875),
591
- contractClassLogsHashes: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeCountedLogHash, seed + 0xa00),
596
+ l2ToL1Msgs: makeClaimedLengthArray(MAX_L2_TO_L1_MSGS_PER_CALL, makeCountedL2ToL1Message, seed + 0x800),
597
+ privateLogs: makeClaimedLengthArray(MAX_PRIVATE_LOGS_PER_CALL, makePrivateLogData, seed + 0x875),
598
+ contractClassLogsHashes: makeClaimedLengthArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeCountedLogHash, seed + 0xa00),
592
599
  startSideEffectCounter: fr(seed + 0x849),
593
600
  endSideEffectCounter: fr(seed + 0x850),
594
601
  historicalHeader: makeHeader(seed + 0xd00, undefined),
@@ -1475,7 +1482,6 @@ export async function makePublicCallRequestWithCalldata(seed = 0): Promise<Publi
1475
1482
  export async function makeAvmTxHint(seed = 0): Promise<AvmTxHint> {
1476
1483
  return new AvmTxHint(
1477
1484
  `txhash-${seed}`,
1478
- makeGlobalVariables(seed),
1479
1485
  makeGasSettings(),
1480
1486
  makeGasFees(seed + 0x1000),
1481
1487
  {
@@ -1510,6 +1516,7 @@ export async function makeAvmExecutionHints(
1510
1516
  const baseLength = lengthOffset + (seed % lengthSeedMod);
1511
1517
 
1512
1518
  const fields = {
1519
+ globalVariables: makeGlobalVariables(seed + 0x4000),
1513
1520
  tx: await makeAvmTxHint(seed + 0x4100),
1514
1521
  contractInstances: makeArray(baseLength + 2, makeAvmContractInstanceHint, seed + 0x4700),
1515
1522
  contractClasses: makeArray(baseLength + 5, makeAvmContractClassHint, seed + 0x4900),
@@ -1542,6 +1549,7 @@ export async function makeAvmExecutionHints(
1542
1549
  };
1543
1550
 
1544
1551
  return new AvmExecutionHints(
1552
+ fields.globalVariables,
1545
1553
  fields.tx,
1546
1554
  fields.contractInstances,
1547
1555
  fields.contractClasses,
@@ -1650,6 +1658,7 @@ export async function makeBloatedProcessedTx({
1650
1658
 
1651
1659
  tx.data.forRollup!.end = data;
1652
1660
 
1661
+ await tx.recomputeHash();
1653
1662
  return makeProcessedTxFromPrivateOnlyTx(tx, transactionFee, feePaymentPublicDataWrite, globalVariables);
1654
1663
  } else {
1655
1664
  const dataFromPrivate = tx.data.forPublic!;
@@ -1693,9 +1702,9 @@ export async function makeBloatedProcessedTx({
1693
1702
  avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
1694
1703
  // Assign final data emitted from avm.
1695
1704
  avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
1696
- avmOutput.accumulatedData.nullifiers = mergeAccumulatedData(
1697
- nonRevertibleData.nullifiers,
1698
- revertibleData.nullifiers,
1705
+ avmOutput.accumulatedData.nullifiers = padArrayEnd(
1706
+ nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
1707
+ Fr.ZERO,
1699
1708
  MAX_NULLIFIERS_PER_TX,
1700
1709
  );
1701
1710
  avmOutput.accumulatedData.l2ToL1Msgs = revertibleData.l2ToL1Msgs;
@@ -1715,6 +1724,7 @@ export async function makeBloatedProcessedTx({
1715
1724
  billedGas: Gas.empty(),
1716
1725
  } satisfies GasUsed;
1717
1726
 
1727
+ await tx.recomputeHash();
1718
1728
  return makeProcessedTxFromTxWithPublicCalls(
1719
1729
  tx,
1720
1730
  {
@@ -1,4 +1,4 @@
1
- import { MAX_ENQUEUED_CALLS_PER_TX } from '@aztec/constants';
1
+ import { MAX_ENQUEUED_CALLS_PER_TX, MAX_INCLUDE_BY_TIMESTAMP_DURATION } from '@aztec/constants';
2
2
  import { Buffer32 } from '@aztec/foundation/buffer';
3
3
  import { times } from '@aztec/foundation/collection';
4
4
  import { Secp256k1Signer, randomBytes } from '@aztec/foundation/crypto';
@@ -126,6 +126,9 @@ export const mockTx = async (
126
126
  data.constants.vkTreeRoot = vkTreeRoot;
127
127
  data.constants.protocolContractTreeRoot = protocolContractTreeRoot;
128
128
 
129
+ // Set includeByTimestamp to the maximum allowed duration from the current time.
130
+ data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
131
+
129
132
  const publicFunctionCalldata: HashedValues[] = [];
130
133
  if (!isForPublic) {
131
134
  data.forRollup!.end.nullifiers[0] = firstNullifier.value;
@@ -163,7 +166,12 @@ export const mockTx = async (
163
166
  .build();
164
167
  }
165
168
 
166
- return new Tx(data, clientIvcProof, [], publicFunctionCalldata);
169
+ return await Tx.create({
170
+ data,
171
+ clientIvcProof,
172
+ contractClassLogFields: [],
173
+ publicFunctionCalldata,
174
+ });
167
175
  };
168
176
 
169
177
  export const mockTxForRollup = (seed = 1, opts: Parameters<typeof mockTx>[1] = {}) =>
@@ -214,7 +222,6 @@ export const randomContractArtifact = (): ContractArtifact => ({
214
222
  },
215
223
  fileMap: {},
216
224
  storageLayout: {},
217
- notes: {},
218
225
  });
219
226
 
220
227
  export const randomContractInstanceWithAddress = async (
@@ -252,18 +259,12 @@ const makeAndSignConsensusPayload = (
252
259
  options?: MakeConsensusPayloadOptions,
253
260
  ) => {
254
261
  const header = options?.header ?? makeHeader(1);
255
- const {
256
- signer = Secp256k1Signer.random(),
257
- archive = Fr.random(),
258
- stateReference = header.state,
259
- txHashes = [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
260
- } = options ?? {};
262
+ const { signer = Secp256k1Signer.random(), archive = Fr.random(), stateReference = header.state } = options ?? {};
261
263
 
262
264
  const payload = ConsensusPayload.fromFields({
263
265
  header: header.toPropose(),
264
266
  archive,
265
267
  stateReference,
266
- txHashes,
267
268
  });
268
269
 
269
270
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
@@ -277,7 +278,8 @@ export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockP
277
278
  SignatureDomainSeparator.blockProposal,
278
279
  options,
279
280
  );
280
- return new BlockProposal(blockNumber, payload, signature, options?.txs ?? []);
281
+ const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
282
+ return new BlockProposal(blockNumber, payload, signature, txHashes, options?.txs ?? []);
281
283
  };
282
284
 
283
285
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
@@ -289,6 +291,16 @@ export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): Blo
289
291
  return new BlockAttestation(blockNumber, payload, signature);
290
292
  };
291
293
 
294
+ export const makeBlockAttestationFromBlock = (block: L2Block, signer?: Secp256k1Signer): BlockAttestation => {
295
+ return makeBlockAttestation({
296
+ signer,
297
+ header: block.header,
298
+ archive: block.archive.root,
299
+ stateReference: block.header.state,
300
+ txHashes: block.body.txEffects.map(tx => tx.txHash),
301
+ });
302
+ };
303
+
292
304
  export async function randomPublishedL2Block(
293
305
  l2BlockNumber: number,
294
306
  opts: { signers?: Secp256k1Signer[] } = {},
@@ -301,17 +313,7 @@ export async function randomPublishedL2Block(
301
313
  };
302
314
 
303
315
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
304
- const atts = await Promise.all(
305
- signers.map(signer =>
306
- makeBlockAttestation({
307
- signer,
308
- header: block.header,
309
- archive: block.archive.root,
310
- stateReference: block.header.state,
311
- txHashes: block.body.txEffects.map(tx => tx.txHash),
312
- }),
313
- ),
314
- );
316
+ const atts = await Promise.all(signers.map(signer => makeBlockAttestationFromBlock(block, signer)));
315
317
  const attestations = atts.map(
316
318
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
317
319
  );
package/src/tx/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './block_header.js';
2
2
  export * from './call_context.js';
3
3
  export * from './global_variables.js';
4
- export * from './include_by_timestamp.js';
5
4
  export * from './content_commitment.js';
6
5
  export * from './state_reference.js';
7
6
  export * from './partial_state_reference.js';
@@ -136,7 +136,7 @@ export class PrivateCallExecutionResult {
136
136
  /** The offchain effects emitted during execution of this function call via the `emit_offchain_effect` oracle. */
137
137
  public offchainEffects: { data: Fr[] }[],
138
138
  /** The nested executions. */
139
- public nestedExecutions: PrivateCallExecutionResult[],
139
+ public nestedExecutionResults: PrivateCallExecutionResult[],
140
140
  /**
141
141
  * Contract class logs emitted during execution of this function call.
142
142
  * Note: We only need to collect the ContractClassLogFields as preimages for the tx.
@@ -158,7 +158,7 @@ export class PrivateCallExecutionResult {
158
158
  noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
159
159
  returnValues: z.array(schemas.Fr),
160
160
  offchainEffects: z.array(z.object({ data: z.array(schemas.Fr) })),
161
- nestedExecutions: z.array(z.lazy(() => PrivateCallExecutionResult.schema)),
161
+ nestedExecutionResults: z.array(z.lazy(() => PrivateCallExecutionResult.schema)),
162
162
  contractClassLogs: z.array(CountedContractClassLog.schema),
163
163
  })
164
164
  .transform(PrivateCallExecutionResult.from);
@@ -175,7 +175,7 @@ export class PrivateCallExecutionResult {
175
175
  fields.noteHashNullifierCounterMap,
176
176
  fields.returnValues,
177
177
  fields.offchainEffects,
178
- fields.nestedExecutions,
178
+ fields.nestedExecutionResults,
179
179
  fields.contractClassLogs,
180
180
  );
181
181
  }
@@ -205,7 +205,7 @@ export function collectNoteHashLeafIndexMap(execResult: PrivateExecutionResult)
205
205
  const accum: Map<bigint, bigint> = new Map();
206
206
  const collectNoteHashLeafIndexMapRecursive = (callResult: PrivateCallExecutionResult, accum: Map<bigint, bigint>) => {
207
207
  callResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
208
- callResult.nestedExecutions.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
208
+ callResult.nestedExecutionResults.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
209
209
  };
210
210
  collectNoteHashLeafIndexMapRecursive(execResult.entrypoint, accum);
211
211
  return accum;
@@ -218,7 +218,7 @@ export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionR
218
218
  accum: Map<number, number>,
219
219
  ) => {
220
220
  callResult.noteHashNullifierCounterMap.forEach((value, key) => accum.set(key, value));
221
- callResult.nestedExecutions.forEach(nested => collectNoteHashNullifierCounterMapRecursive(nested, accum));
221
+ callResult.nestedExecutionResults.forEach(nested => collectNoteHashNullifierCounterMapRecursive(nested, accum));
222
222
  };
223
223
  collectNoteHashNullifierCounterMapRecursive(execResult.entrypoint, accum);
224
224
  return accum;
@@ -230,7 +230,7 @@ export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionR
230
230
  * @returns All contract class logs.
231
231
  */
232
232
  function collectContractClassLogs(execResult: PrivateCallExecutionResult): CountedContractClassLog[] {
233
- return [execResult.contractClassLogs, ...execResult.nestedExecutions.flatMap(collectContractClassLogs)].flat();
233
+ return [execResult.contractClassLogs, ...execResult.nestedExecutionResults.flatMap(collectContractClassLogs)].flat();
234
234
  }
235
235
 
236
236
  /**
@@ -256,7 +256,7 @@ export function collectOffchainEffects(execResult: PrivateExecutionResult): Offc
256
256
  ...msg,
257
257
  contractAddress: callResult.publicInputs.callContext.contractAddress, // contract that emitted the effect
258
258
  })),
259
- ...callResult.nestedExecutions.flatMap(nested => collectEffectsRecursive(nested)),
259
+ ...callResult.nestedExecutionResults.flatMap(nested => collectEffectsRecursive(nested)),
260
260
  ];
261
261
  };
262
262
  return collectEffectsRecursive(execResult.entrypoint);
@@ -264,7 +264,7 @@ export function collectOffchainEffects(execResult: PrivateExecutionResult): Offc
264
264
 
265
265
  export function getFinalMinRevertibleSideEffectCounter(execResult: PrivateExecutionResult): number {
266
266
  const collectFinalMinRevertibleSideEffectCounterRecursive = (callResult: PrivateCallExecutionResult): number => {
267
- return callResult.nestedExecutions.reduce((counter, exec) => {
267
+ return callResult.nestedExecutionResults.reduce((counter, exec) => {
268
268
  const nestedCounter = collectFinalMinRevertibleSideEffectCounterRecursive(exec);
269
269
  return nestedCounter ? nestedCounter : counter;
270
270
  }, callResult.publicInputs.minRevertibleSideEffectCounter.toNumber());
@@ -279,7 +279,9 @@ export function collectNested<T>(
279
279
  const thisExecutionReads = executionStack.flatMap(extractExecutionItems);
280
280
 
281
281
  return thisExecutionReads.concat(
282
- executionStack.flatMap(({ nestedExecutions }) => collectNested(nestedExecutions, extractExecutionItems)),
282
+ executionStack.flatMap(({ nestedExecutionResults }) =>
283
+ collectNested(nestedExecutionResults, extractExecutionItems),
284
+ ),
283
285
  );
284
286
  }
285
287
 
@@ -77,16 +77,16 @@ export type FailedTx = {
77
77
  error: Error;
78
78
  };
79
79
 
80
- export async function makeProcessedTxFromPrivateOnlyTx(
80
+ export function makeProcessedTxFromPrivateOnlyTx(
81
81
  tx: Tx,
82
82
  transactionFee: Fr,
83
83
  feePaymentPublicDataWrite: PublicDataWrite,
84
84
  globalVariables: GlobalVariables,
85
- ): Promise<ProcessedTx> {
85
+ ): ProcessedTx {
86
86
  const data = tx.data.forRollup!;
87
87
  const txEffect = new TxEffect(
88
88
  RevertCode.OK,
89
- await tx.getTxHash(),
89
+ tx.getTxHash(),
90
90
  transactionFee,
91
91
  data.end.noteHashes.filter(h => !h.isZero()),
92
92
  data.end.nullifiers.filter(h => !h.isZero()),
@@ -134,13 +134,13 @@ export function toNumBlobFields(txs: ProcessedTx[]): number {
134
134
  }, 0);
135
135
  }
136
136
 
137
- export async function makeProcessedTxFromTxWithPublicCalls(
137
+ export function makeProcessedTxFromTxWithPublicCalls(
138
138
  tx: Tx,
139
139
  avmProvingRequest: AvmProvingRequest,
140
140
  gasUsed: GasUsed,
141
141
  revertCode: RevertCode,
142
142
  revertReason: SimulationError | undefined,
143
- ): Promise<ProcessedTx> {
143
+ ): ProcessedTx {
144
144
  const avmPublicInputs = avmProvingRequest.inputs.publicInputs;
145
145
 
146
146
  const globalVariables = avmPublicInputs.globalVariables;
@@ -158,7 +158,7 @@ export async function makeProcessedTxFromTxWithPublicCalls(
158
158
 
159
159
  const txEffect = new TxEffect(
160
160
  revertCode,
161
- await tx.getTxHash(),
161
+ tx.getTxHash(),
162
162
  avmPublicInputs.transactionFee,
163
163
  avmPublicInputs.accumulatedData.noteHashes.filter(h => !h.isZero()),
164
164
  avmPublicInputs.accumulatedData.nullifiers.filter(h => !h.isZero()),
@@ -22,16 +22,15 @@ export class TxProvingResult {
22
22
  public stats?: ProvingStats,
23
23
  ) {}
24
24
 
25
- toTx(): Tx {
25
+ async toTx(): Promise<Tx> {
26
26
  const contractClassLogs = collectSortedContractClassLogs(this.privateExecutionResult);
27
27
 
28
- const tx = new Tx(
29
- this.publicInputs,
30
- this.clientIvcProof,
31
- contractClassLogs,
32
- this.privateExecutionResult.publicFunctionCalldata,
33
- );
34
- return tx;
28
+ return await Tx.create({
29
+ data: this.publicInputs,
30
+ clientIvcProof: this.clientIvcProof,
31
+ contractClassLogFields: contractClassLogs,
32
+ publicFunctionCalldata: this.privateExecutionResult.publicFunctionCalldata,
33
+ });
35
34
  }
36
35
 
37
36
  getOffchainEffects(): OffchainEffect[] {
@@ -4,7 +4,6 @@ import type { FieldsOf } from '@aztec/foundation/types';
4
4
  import { z } from 'zod';
5
5
 
6
6
  import { type ContractArtifact, ContractArtifactSchema } from '../abi/abi.js';
7
- import { AztecAddress } from '../aztec-address/index.js';
8
7
  import {
9
8
  type ContractInstanceWithAddress,
10
9
  ContractInstanceWithAddressSchema,
@@ -37,10 +36,7 @@ export type ContractOverrides = Record<
37
36
  * set, it *must* be run without the kernel circuits, or validations will fail
38
37
  */
39
38
  export class SimulationOverrides {
40
- constructor(
41
- public contracts?: ContractOverrides,
42
- public msgSender?: AztecAddress,
43
- ) {}
39
+ constructor(public contracts?: ContractOverrides) {}
44
40
 
45
41
  static get schema() {
46
42
  return z
@@ -51,10 +47,9 @@ export class SimulationOverrides {
51
47
  z.object({ instance: ContractInstanceWithAddressSchema, artifact: ContractArtifactSchema }),
52
48
  ),
53
49
  ),
54
- msgSender: optional(AztecAddress.schema),
55
50
  })
56
- .transform(({ contracts, msgSender }) => {
57
- return new SimulationOverrides(contracts, msgSender);
51
+ .transform(({ contracts }) => {
52
+ return new SimulationOverrides(contracts);
58
53
  });
59
54
  }
60
55
  }
@@ -69,16 +64,15 @@ export class PrivateSimulationResult {
69
64
  return accumulatePrivateReturnValues(this.privateExecutionResult);
70
65
  }
71
66
 
72
- toSimulatedTx(): Tx {
67
+ async toSimulatedTx(): Promise<Tx> {
73
68
  const contractClassLogs = collectSortedContractClassLogs(this.privateExecutionResult);
74
69
 
75
- const tx = new Tx(
76
- this.publicInputs,
77
- ClientIvcProof.empty(),
78
- contractClassLogs,
79
- this.privateExecutionResult.publicFunctionCalldata,
80
- );
81
- return tx;
70
+ return await Tx.create({
71
+ data: this.publicInputs,
72
+ clientIvcProof: ClientIvcProof.empty(),
73
+ contractClassLogFields: contractClassLogs,
74
+ publicFunctionCalldata: this.privateExecutionResult.publicFunctionCalldata,
75
+ });
82
76
  }
83
77
  }
84
78
 
@@ -146,7 +140,7 @@ export class TxSimulationResult {
146
140
  return new PrivateSimulationResult(this.privateExecutionResult, this.publicInputs).getPrivateReturnValues();
147
141
  }
148
142
 
149
- toSimulatedTx(): Tx {
143
+ toSimulatedTx(): Promise<Tx> {
150
144
  return new PrivateSimulationResult(this.privateExecutionResult, this.publicInputs).toSimulatedTx();
151
145
  }
152
146
 
@@ -166,8 +160,8 @@ export function accumulatePrivateReturnValues(executionResult: PrivateExecutionR
166
160
  executionResult: PrivateCallExecutionResult,
167
161
  ): NestedProcessReturnValues => {
168
162
  const acc = new NestedProcessReturnValues(executionResult.returnValues);
169
- acc.nested = executionResult.nestedExecutions.map(nestedExecution =>
170
- collectPrivateReturnValuesRecursive(nestedExecution),
163
+ acc.nested = executionResult.nestedExecutionResults.map(nestedExecutionResult =>
164
+ collectPrivateReturnValuesRecursive(nestedExecutionResult),
171
165
  );
172
166
  return acc;
173
167
  };