@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
@@ -2,7 +2,6 @@ import { type ZodFor } from '@aztec/foundation/schemas';
2
2
  import type { FieldsOf } from '@aztec/foundation/types';
3
3
  import { z } from 'zod';
4
4
  import { type ContractArtifact } from '../abi/abi.js';
5
- import { AztecAddress } from '../aztec-address/index.js';
6
5
  import { type ContractInstanceWithAddress } from '../contract/interfaces/contract_instance.js';
7
6
  import type { GasUsed } from '../gas/gas_used.js';
8
7
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
@@ -16,14 +15,13 @@ export type ContractOverrides = Record<string, {
16
15
  }>;
17
16
  export declare class SimulationOverrides {
18
17
  contracts?: ContractOverrides | undefined;
19
- msgSender?: AztecAddress | undefined;
20
- constructor(contracts?: ContractOverrides | undefined, msgSender?: AztecAddress | undefined);
18
+ constructor(contracts?: ContractOverrides | undefined);
21
19
  static get schema(): z.ZodEffects<z.ZodObject<{
22
20
  contracts: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
23
21
  instance: z.ZodIntersection<z.ZodObject<{
24
22
  version: z.ZodLiteral<1>;
25
23
  salt: ZodFor<import("@aztec/foundation/schemas").Fr>;
26
- deployer: ZodFor<AztecAddress>;
24
+ deployer: ZodFor<import("../aztec-address/index.js").AztecAddress>;
27
25
  currentContractClassId: ZodFor<import("@aztec/foundation/schemas").Fr>;
28
26
  originalContractClassId: ZodFor<import("@aztec/foundation/schemas").Fr>;
29
27
  initializationHash: ZodFor<import("@aztec/foundation/schemas").Fr>;
@@ -52,7 +50,7 @@ export declare class SimulationOverrides {
52
50
  version: 1;
53
51
  salt: import("@aztec/foundation/schemas").Fr;
54
52
  publicKeys: import("../keys/public_keys.js").PublicKeys;
55
- deployer: AztecAddress;
53
+ deployer: import("../aztec-address/index.js").AztecAddress;
56
54
  currentContractClassId: import("@aztec/foundation/schemas").Fr;
57
55
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
58
56
  initializationHash: import("@aztec/foundation/schemas").Fr;
@@ -70,9 +68,9 @@ export declare class SimulationOverrides {
70
68
  originalContractClassId?: any;
71
69
  initializationHash?: any;
72
70
  }>, z.ZodObject<{
73
- address: ZodFor<AztecAddress>;
71
+ address: ZodFor<import("../aztec-address/index.js").AztecAddress>;
74
72
  }, "strip", z.ZodTypeAny, {
75
- address: AztecAddress;
73
+ address: import("../aztec-address/index.js").AztecAddress;
76
74
  }, {
77
75
  address?: any;
78
76
  }>>;
@@ -82,12 +80,12 @@ export declare class SimulationOverrides {
82
80
  version: 1;
83
81
  salt: import("@aztec/foundation/schemas").Fr;
84
82
  publicKeys: import("../keys/public_keys.js").PublicKeys;
85
- deployer: AztecAddress;
83
+ deployer: import("../aztec-address/index.js").AztecAddress;
86
84
  currentContractClassId: import("@aztec/foundation/schemas").Fr;
87
85
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
88
86
  initializationHash: import("@aztec/foundation/schemas").Fr;
89
87
  } & {
90
- address: AztecAddress;
88
+ address: import("../aztec-address/index.js").AztecAddress;
91
89
  };
92
90
  artifact: ContractArtifact;
93
91
  }, {
@@ -109,25 +107,22 @@ export declare class SimulationOverrides {
109
107
  };
110
108
  artifact?: any;
111
109
  }>>>;
112
- msgSender: import("@aztec/foundation/schemas").ZodNullableOptional<ZodFor<AztecAddress>>;
113
110
  }, "strip", z.ZodTypeAny, {
114
- msgSender?: AztecAddress | undefined;
115
111
  contracts?: Record<string, {
116
112
  instance: {
117
113
  version: 1;
118
114
  salt: import("@aztec/foundation/schemas").Fr;
119
115
  publicKeys: import("../keys/public_keys.js").PublicKeys;
120
- deployer: AztecAddress;
116
+ deployer: import("../aztec-address/index.js").AztecAddress;
121
117
  currentContractClassId: import("@aztec/foundation/schemas").Fr;
122
118
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
123
119
  initializationHash: import("@aztec/foundation/schemas").Fr;
124
120
  } & {
125
- address: AztecAddress;
121
+ address: import("../aztec-address/index.js").AztecAddress;
126
122
  };
127
123
  artifact: ContractArtifact;
128
124
  }> | undefined;
129
125
  }, {
130
- msgSender?: any;
131
126
  contracts?: Record<string, {
132
127
  instance: {
133
128
  version: 1;
@@ -148,7 +143,6 @@ export declare class SimulationOverrides {
148
143
  artifact?: any;
149
144
  }> | undefined;
150
145
  }>, SimulationOverrides, {
151
- msgSender?: any;
152
146
  contracts?: Record<string, {
153
147
  instance: {
154
148
  version: 1;
@@ -175,7 +169,7 @@ export declare class PrivateSimulationResult {
175
169
  publicInputs: PrivateKernelTailCircuitPublicInputs;
176
170
  constructor(privateExecutionResult: PrivateExecutionResult, publicInputs: PrivateKernelTailCircuitPublicInputs);
177
171
  getPrivateReturnValues(): NestedProcessReturnValues;
178
- toSimulatedTx(): Tx;
172
+ toSimulatedTx(): Promise<Tx>;
179
173
  }
180
174
  export declare class TxSimulationResult {
181
175
  privateExecutionResult: PrivateExecutionResult;
@@ -189,7 +183,7 @@ export declare class TxSimulationResult {
189
183
  static fromPrivateSimulationResultAndPublicOutput(privateSimulationResult: PrivateSimulationResult, publicOutput?: PublicSimulationOutput, stats?: SimulationStats): TxSimulationResult;
190
184
  static random(): Promise<TxSimulationResult>;
191
185
  getPrivateReturnValues(): NestedProcessReturnValues;
192
- toSimulatedTx(): Tx;
186
+ toSimulatedTx(): Promise<Tx>;
193
187
  getPublicReturnValues(): NestedProcessReturnValues[];
194
188
  }
195
189
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"simulated_tx.d.ts","sourceRoot":"","sources":["../../src/tx/simulated_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAE9G,OAAO,EAEL,sBAAsB,EAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAO7B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,MAAM,EACN;IAAE,QAAQ,EAAE,2BAA2B,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CACtE,CAAC;AAMF,qBAAa,mBAAmB;IAErB,SAAS,CAAC,EAAE,iBAAiB;IAC7B,SAAS,CAAC,EAAE,YAAY;gBADxB,SAAS,CAAC,EAAE,iBAAiB,YAAA,EAC7B,SAAS,CAAC,EAAE,YAAY,YAAA;IAGjC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAchB;CACF;AAED,qBAAa,uBAAuB;IAEzB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;gBADlD,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC;IAG3D,sBAAsB;IAItB,aAAa,IAAI,EAAE;CAWpB;AAED,qBAAa,kBAAkB;IAEpB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAClD,YAAY,CAAC,EAAE,sBAAsB;IACrC,KAAK,CAAC,EAAE,eAAe;gBAHvB,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EAClD,YAAY,CAAC,EAAE,sBAAsB,YAAA,EACrC,KAAK,CAAC,EAAE,eAAe,YAAA;IAGhC,IAAI,OAAO,IAAI,OAAO,CASrB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAS9C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IASjE,MAAM,CAAC,0CAA0C,CAC/C,uBAAuB,EAAE,uBAAuB,EAChD,YAAY,CAAC,EAAE,sBAAsB,EACrC,KAAK,CAAC,EAAE,eAAe;WAUZ,MAAM;IAQnB,sBAAsB;IAItB,aAAa,IAAI,EAAE;IAInB,qBAAqB;CAGtB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,sBAAsB,GAAG,yBAAyB,CAWhH"}
1
+ {"version":3,"file":"simulated_tx.d.ts","sourceRoot":"","sources":["../../src/tx/simulated_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAE9G,OAAO,EAEL,sBAAsB,EAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAO7B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,MAAM,EACN;IAAE,QAAQ,EAAE,2BAA2B,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CACtE,CAAC;AAMF,qBAAa,mBAAmB;IACX,SAAS,CAAC,EAAE,iBAAiB;gBAA7B,SAAS,CAAC,EAAE,iBAAiB,YAAA;IAEhD,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;CACF;AAED,qBAAa,uBAAuB;IAEzB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;gBADlD,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC;IAG3D,sBAAsB;IAIhB,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC;CAUnC;AAED,qBAAa,kBAAkB;IAEpB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAClD,YAAY,CAAC,EAAE,sBAAsB;IACrC,KAAK,CAAC,EAAE,eAAe;gBAHvB,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EAClD,YAAY,CAAC,EAAE,sBAAsB,YAAA,EACrC,KAAK,CAAC,EAAE,eAAe,YAAA;IAGhC,IAAI,OAAO,IAAI,OAAO,CASrB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAS9C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IASjE,MAAM,CAAC,0CAA0C,CAC/C,uBAAuB,EAAE,uBAAuB,EAChD,YAAY,CAAC,EAAE,sBAAsB,EACrC,KAAK,CAAC,EAAE,eAAe;WAUZ,MAAM;IAQnB,sBAAsB;IAItB,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC;IAI5B,qBAAqB;CAGtB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,sBAAsB,GAAG,yBAAyB,CAWhH"}
@@ -1,7 +1,6 @@
1
1
  import { optional } from '@aztec/foundation/schemas';
2
2
  import { z } from 'zod';
3
3
  import { ContractArtifactSchema } from '../abi/abi.js';
4
- import { AztecAddress } from '../aztec-address/index.js';
5
4
  import { ContractInstanceWithAddressSchema } from '../contract/interfaces/contract_instance.js';
6
5
  import { Gas } from '../gas/gas.js';
7
6
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
@@ -15,20 +14,17 @@ import { Tx } from './tx.js';
15
14
  * set, it *must* be run without the kernel circuits, or validations will fail
16
15
  */ export class SimulationOverrides {
17
16
  contracts;
18
- msgSender;
19
- constructor(contracts, msgSender){
17
+ constructor(contracts){
20
18
  this.contracts = contracts;
21
- this.msgSender = msgSender;
22
19
  }
23
20
  static get schema() {
24
21
  return z.object({
25
22
  contracts: optional(z.record(z.string(), z.object({
26
23
  instance: ContractInstanceWithAddressSchema,
27
24
  artifact: ContractArtifactSchema
28
- }))),
29
- msgSender: optional(AztecAddress.schema)
30
- }).transform(({ contracts, msgSender })=>{
31
- return new SimulationOverrides(contracts, msgSender);
25
+ })))
26
+ }).transform(({ contracts })=>{
27
+ return new SimulationOverrides(contracts);
32
28
  });
33
29
  }
34
30
  }
@@ -42,10 +38,14 @@ export class PrivateSimulationResult {
42
38
  getPrivateReturnValues() {
43
39
  return accumulatePrivateReturnValues(this.privateExecutionResult);
44
40
  }
45
- toSimulatedTx() {
41
+ async toSimulatedTx() {
46
42
  const contractClassLogs = collectSortedContractClassLogs(this.privateExecutionResult);
47
- const tx = new Tx(this.publicInputs, ClientIvcProof.empty(), contractClassLogs, this.privateExecutionResult.publicFunctionCalldata);
48
- return tx;
43
+ return await Tx.create({
44
+ data: this.publicInputs,
45
+ clientIvcProof: ClientIvcProof.empty(),
46
+ contractClassLogFields: contractClassLogs,
47
+ publicFunctionCalldata: this.privateExecutionResult.publicFunctionCalldata
48
+ });
49
49
  }
50
50
  }
51
51
  export class TxSimulationResult {
@@ -102,7 +102,7 @@ export class TxSimulationResult {
102
102
  */ export function accumulatePrivateReturnValues(executionResult) {
103
103
  const collectPrivateReturnValuesRecursive = (executionResult)=>{
104
104
  const acc = new NestedProcessReturnValues(executionResult.returnValues);
105
- acc.nested = executionResult.nestedExecutions.map((nestedExecution)=>collectPrivateReturnValuesRecursive(nestedExecution));
105
+ acc.nested = executionResult.nestedExecutionResults.map((nestedExecutionResult)=>collectPrivateReturnValuesRecursive(nestedExecutionResult));
106
106
  return acc;
107
107
  };
108
108
  return collectPrivateReturnValuesRecursive(executionResult.entrypoint);
package/dest/tx/tx.d.ts CHANGED
@@ -20,6 +20,8 @@ import { TxHash } from './tx_hash.js';
20
20
  */
21
21
  export declare class Tx extends Gossipable {
22
22
  #private;
23
+ /** Identifier of the tx */
24
+ readonly txHash: TxHash;
23
25
  /**
24
26
  * Output of the private kernel circuit for this tx.
25
27
  */
@@ -34,15 +36,16 @@ export declare class Tx extends Gossipable {
34
36
  * Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
35
37
  * It's checked in data_validator.ts
36
38
  */
37
- contractClassLogFields: ContractClassLogFields[];
39
+ readonly contractClassLogFields: ContractClassLogFields[];
38
40
  /**
39
41
  * An array of calldata for the enqueued public function calls and the teardown function call.
40
42
  */
41
- publicFunctionCalldata: HashedValues[];
43
+ readonly publicFunctionCalldata: HashedValues[];
42
44
  static p2pTopic: TopicType;
43
- private txHash;
44
45
  private calldataMap;
45
46
  constructor(
47
+ /** Identifier of the tx */
48
+ txHash: TxHash,
46
49
  /**
47
50
  * Output of the private kernel circuit for this tx.
48
51
  */
@@ -83,6 +86,8 @@ export declare class Tx extends Gossipable {
83
86
  */
84
87
  toBuffer(): Buffer<ArrayBufferLike>;
85
88
  static get schema(): ZodFor<Tx>;
89
+ static computeTxHash(fields: Pick<FieldsOf<Tx>, 'data'>): Promise<TxHash>;
90
+ static create(fields: Omit<FieldsOf<Tx>, 'txHash'>): Promise<Tx>;
86
91
  static from(fields: FieldsOf<Tx>): Tx;
87
92
  /**
88
93
  * Gets public logs emitted by this tx.
@@ -98,38 +103,26 @@ export declare class Tx extends Gossipable {
98
103
  */
99
104
  getSplitContractClassLogs(revertible: boolean): ContractClassLog[];
100
105
  /**
101
- * Computes (if necessary) & return transaction hash.
106
+ * Return transaction hash.
102
107
  * @returns The hash of the public inputs of the private kernel tail circuit.
103
108
  */
104
- getTxHash(forceRecompute?: boolean): Promise<TxHash>;
109
+ getTxHash(): TxHash;
105
110
  /**
106
111
  * Allows setting the hash of the Tx.
107
112
  * Use this when you want to skip computing it from the original data.
108
113
  * Don't set a Tx hash received from an untrusted source.
109
114
  * @param hash - The hash to set.
110
115
  */
111
- setTxHash(hash: TxHash): void;
116
+ setTxHash(_hash: TxHash): this;
112
117
  getCalldataMap(): Map<string, Fr[]>;
113
118
  /** Returns stats about this tx. */
114
- getStats(): Promise<TxStats>;
119
+ getStats(): TxStats;
115
120
  getSize(): number;
116
121
  /**
117
122
  * Estimates the tx size based on its private effects. Note that the actual size of the tx
118
123
  * after processing will probably be larger, as public execution would generate more data.
119
124
  */
120
125
  getEstimatedPrivateTxEffectsSize(): number;
121
- /**
122
- * Convenience function to get a hash out of a tx or a tx-like.
123
- * @param tx - Tx-like object.
124
- * @returns - The hash.
125
- */
126
- static getHash(tx: Tx | HasHash): Promise<TxHash>;
127
- /**
128
- * Convenience function to get array of hashes for an array of txs.
129
- * @param txs - The txs to get the hashes from.
130
- * @returns The corresponding array of hashes.
131
- */
132
- static getHashes(txs: (Tx | HasHash)[]): Promise<TxHash[]>;
133
126
  /**
134
127
  * Clones a tx, making a deep copy of all fields.
135
128
  * @param tx - The transaction to be cloned.
@@ -141,11 +134,18 @@ export declare class Tx extends Gossipable {
141
134
  * @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
142
135
  * @returns A random tx.
143
136
  */
144
- static random(randomProof?: boolean): Tx;
137
+ static random(args?: {
138
+ randomProof?: boolean;
139
+ txHash?: string | TxHash;
140
+ }): Tx;
141
+ /** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */
142
+ recomputeHash(): Promise<void>;
143
+ }
144
+ /**
145
+ * Helper class to handle Serialization and Deserialization of Txs array.
146
+ */
147
+ export declare class TxArray extends Array<Tx> {
148
+ static fromBuffer(buffer: Buffer | BufferReader): TxArray;
149
+ toBuffer(): Buffer;
145
150
  }
146
- /** Utility type for an entity that has a hash property for a txhash */
147
- type HasHash = {
148
- hash: TxHash;
149
- };
150
- export {};
151
151
  //# sourceMappingURL=tx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
package/dest/tx/tx.js CHANGED
@@ -14,15 +14,14 @@ import { TxHash } from './tx_hash.js';
14
14
  /**
15
15
  * The interface of an L2 transaction.
16
16
  */ export class Tx extends Gossipable {
17
+ txHash;
17
18
  data;
18
19
  clientIvcProof;
19
20
  contractClassLogFields;
20
21
  publicFunctionCalldata;
21
22
  static p2pTopic = TopicType.tx;
22
- // For memoization
23
- txHash;
24
23
  calldataMap;
25
- constructor(/**
24
+ constructor(/** Identifier of the tx */ txHash, /**
26
25
  * Output of the private kernel circuit for this tx.
27
26
  */ data, /**
28
27
  * Proof from the private kernel circuit.
@@ -34,11 +33,11 @@ import { TxHash } from './tx_hash.js';
34
33
  */ contractClassLogFields, /**
35
34
  * An array of calldata for the enqueued public function calls and the teardown function call.
36
35
  */ publicFunctionCalldata){
37
- super(), this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogFields = contractClassLogFields, this.publicFunctionCalldata = publicFunctionCalldata;
36
+ super(), this.txHash = txHash, this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogFields = contractClassLogFields, this.publicFunctionCalldata = publicFunctionCalldata;
38
37
  }
39
38
  // Gossipable method
40
- async generateP2PMessageIdentifier() {
41
- return new Buffer32((await this.getTxHash()).toBuffer());
39
+ generateP2PMessageIdentifier() {
40
+ return Promise.resolve(new Buffer32(this.getTxHash().toBuffer()));
42
41
  }
43
42
  hasPublicCalls() {
44
43
  return this.numberOfPublicCalls() > 0;
@@ -79,13 +78,14 @@ import { TxHash } from './tx_hash.js';
79
78
  * @returns An instance of Tx.
80
79
  */ static fromBuffer(buffer) {
81
80
  const reader = BufferReader.asReader(buffer);
82
- return new Tx(reader.readObject(PrivateKernelTailCircuitPublicInputs), reader.readObject(ClientIvcProof), reader.readVectorUint8Prefix(ContractClassLogFields), reader.readVectorUint8Prefix(HashedValues));
81
+ return new Tx(reader.readObject(TxHash), reader.readObject(PrivateKernelTailCircuitPublicInputs), reader.readObject(ClientIvcProof), reader.readVectorUint8Prefix(ContractClassLogFields), reader.readVectorUint8Prefix(HashedValues));
83
82
  }
84
83
  /**
85
84
  * Serializes the Tx object into a Buffer.
86
85
  * @returns Buffer representation of the Tx object.
87
86
  */ toBuffer() {
88
87
  return serializeToBuffer([
88
+ this.txHash,
89
89
  this.data,
90
90
  this.clientIvcProof,
91
91
  serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
@@ -98,18 +98,29 @@ import { TxHash } from './tx_hash.js';
98
98
  clientIvcProof: ClientIvcProof.schema,
99
99
  contractClassLogFields: z.array(ContractClassLogFields.schema),
100
100
  publicFunctionCalldata: z.array(HashedValues.schema)
101
- }).transform(Tx.from);
101
+ }).transform(Tx.create);
102
+ }
103
+ static async computeTxHash(fields) {
104
+ const hash = fields.data.forPublic ? await fields.data.toPrivateToPublicKernelCircuitPublicInputs().hash() : await fields.data.toPrivateToRollupKernelCircuitPublicInputs().hash();
105
+ return new TxHash(hash);
106
+ }
107
+ static async create(fields) {
108
+ const txHash = await Tx.computeTxHash(fields);
109
+ return Tx.from({
110
+ ...fields,
111
+ txHash
112
+ });
102
113
  }
103
114
  static from(fields) {
104
- return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
115
+ return new Tx(fields.txHash, fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
105
116
  }
106
117
  /**
107
118
  * Gets public logs emitted by this tx.
108
119
  * @param logsSource - An instance of `L2LogsSource` which can be used to obtain the logs.
109
120
  * @returns The requested logs.
110
- */ async getPublicLogs(logsSource) {
121
+ */ getPublicLogs(logsSource) {
111
122
  return logsSource.getPublicLogs({
112
- txHash: await this.getTxHash()
123
+ txHash: this.getTxHash()
113
124
  });
114
125
  }
115
126
  getContractClassLogs() {
@@ -133,13 +144,9 @@ import { TxHash } from './tx_hash.js';
133
144
  return revertible ? contractClassLogs.slice(numNonRevertible) : contractClassLogs.slice(0, numNonRevertible);
134
145
  }
135
146
  /**
136
- * Computes (if necessary) & return transaction hash.
147
+ * Return transaction hash.
137
148
  * @returns The hash of the public inputs of the private kernel tail circuit.
138
- */ async getTxHash(forceRecompute = false) {
139
- if (!this.txHash || forceRecompute) {
140
- const hash = this.data.forPublic ? await this.data.toPrivateToPublicKernelCircuitPublicInputs().hash() : await this.data.toPrivateToRollupKernelCircuitPublicInputs().hash();
141
- this.txHash = new TxHash(hash);
142
- }
149
+ */ getTxHash() {
143
150
  return this.txHash;
144
151
  }
145
152
  /**
@@ -147,8 +154,8 @@ import { TxHash } from './tx_hash.js';
147
154
  * Use this when you want to skip computing it from the original data.
148
155
  * Don't set a Tx hash received from an untrusted source.
149
156
  * @param hash - The hash to set.
150
- */ setTxHash(hash) {
151
- this.txHash = hash;
157
+ */ setTxHash(_hash) {
158
+ return this;
152
159
  }
153
160
  getCalldataMap() {
154
161
  if (!this.calldataMap) {
@@ -158,13 +165,13 @@ import { TxHash } from './tx_hash.js';
158
165
  }
159
166
  return this.calldataMap;
160
167
  }
161
- /** Returns stats about this tx. */ async getStats() {
168
+ /** Returns stats about this tx. */ getStats() {
162
169
  return {
163
- txHash: (await this.getTxHash()).toString(),
170
+ txHash: this.txHash.toString(),
164
171
  noteHashCount: this.data.getNonEmptyNoteHashes().length,
165
172
  nullifierCount: this.data.getNonEmptyNullifiers().length,
166
173
  privateLogCount: this.data.getNonEmptyPrivateLogs().length,
167
- classRegisteredCount: this.data.getNonEmptyContractClassLogsHashes().length,
174
+ classPublishedCount: this.data.getNonEmptyContractClassLogsHashes().length,
168
175
  contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
169
176
  proofSize: this.clientIvcProof.clientIvcProofBuffer.length,
170
177
  size: this.toBuffer().length,
@@ -182,20 +189,6 @@ import { TxHash } from './tx_hash.js';
182
189
  return this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES + this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES + this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES + this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES;
183
190
  }
184
191
  /**
185
- * Convenience function to get a hash out of a tx or a tx-like.
186
- * @param tx - Tx-like object.
187
- * @returns - The hash.
188
- */ static async getHash(tx) {
189
- return hasHash(tx) ? tx.hash : await tx.getTxHash();
190
- }
191
- /**
192
- * Convenience function to get array of hashes for an array of txs.
193
- * @param txs - The txs to get the hashes from.
194
- * @returns The corresponding array of hashes.
195
- */ static async getHashes(txs) {
196
- return await Promise.all(txs.map(Tx.getHash));
197
- }
198
- /**
199
192
  * Clones a tx, making a deep copy of all fields.
200
193
  * @param tx - The transaction to be cloned.
201
194
  * @returns The cloned transaction.
@@ -204,22 +197,28 @@ import { TxHash } from './tx_hash.js';
204
197
  const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
205
198
  const contractClassLogFields = tx.contractClassLogFields.map((p)=>p.clone());
206
199
  const publicFunctionCalldata = tx.publicFunctionCalldata.map((cd)=>HashedValues.fromBuffer(cd.toBuffer()));
207
- const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
208
- if (tx.txHash) {
209
- clonedTx.setTxHash(TxHash.fromBuffer(tx.txHash.toBuffer()));
210
- }
200
+ const clonedTx = new Tx(tx.txHash, publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
211
201
  return clonedTx;
212
202
  }
213
203
  /**
214
204
  * Creates a random tx.
215
205
  * @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
216
206
  * @returns A random tx.
217
- */ static random(randomProof = false) {
218
- return new Tx(PrivateKernelTailCircuitPublicInputs.emptyWithNullifier(), randomProof ? ClientIvcProof.random() : ClientIvcProof.empty(), [
219
- ContractClassLogFields.random()
220
- ], [
221
- HashedValues.random()
222
- ]);
207
+ */ static random(args = {}) {
208
+ return Tx.from({
209
+ txHash: (typeof args.txHash === 'string' ? TxHash.fromString(args.txHash) : args.txHash) ?? TxHash.random(),
210
+ data: PrivateKernelTailCircuitPublicInputs.emptyWithNullifier(),
211
+ clientIvcProof: args.randomProof ? ClientIvcProof.random() : ClientIvcProof.empty(),
212
+ contractClassLogFields: [
213
+ ContractClassLogFields.random()
214
+ ],
215
+ publicFunctionCalldata: [
216
+ HashedValues.random()
217
+ ]
218
+ });
219
+ }
220
+ /** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */ async recomputeHash() {
221
+ this.txHash = await Tx.computeTxHash(this);
223
222
  }
224
223
  #combinePublicCallRequestWithCallData(request) {
225
224
  const calldataMap = this.getCalldataMap();
@@ -229,6 +228,19 @@ import { TxHash } from './tx_hash.js';
229
228
  return new PublicCallRequestWithCalldata(request, calldata);
230
229
  }
231
230
  }
232
- function hasHash(tx) {
233
- return tx.hash !== undefined;
231
+ /**
232
+ * Helper class to handle Serialization and Deserialization of Txs array.
233
+ */ export class TxArray extends Array {
234
+ static fromBuffer(buffer) {
235
+ try {
236
+ const reader = BufferReader.asReader(buffer);
237
+ const txs = reader.readVector(Tx);
238
+ return new TxArray(...txs);
239
+ } catch {
240
+ return new TxArray();
241
+ }
242
+ }
243
+ toBuffer() {
244
+ return serializeArrayOfBufferableToVector(this);
245
+ }
234
246
  }
@@ -108,9 +108,9 @@ export declare class TxEffect {
108
108
  static fromBuffer(buffer: Buffer | BufferReader): TxEffect;
109
109
  /**
110
110
  * Computes txOutHash of this tx effect.
111
- * @dev Follows new_sha in variable_merkle_tree.nr
111
+ * @dev Follows new_sha in unbalanced_merkle_tree.nr
112
112
  */
113
- txOutHash(): Buffer<ArrayBufferLike>;
113
+ txOutHash(): Buffer;
114
114
  static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number, maxEffects?: number | undefined): Promise<TxEffect>;
115
115
  static empty(): TxEffect;
116
116
  isEmpty(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EAGZ,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AAEpF,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,qBAAa,QAAQ;IAEjB;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;;IAxC5C;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;IAoD9C,QAAQ,IAAI,MAAM;IAelB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAsBhC,yEAAyE;IACzE,SAAS;IAIT;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;IAiB1D;;;OAGG;IACH,SAAS,IAAI,MAAM;WASN,MAAM,CACjB,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,OAAO,CAAC,QAAQ,CAAC;IA6BpB,MAAM,CAAC,KAAK,IAAI,QAAQ;IAIxB,OAAO,IAAI,OAAO;IAIlB,2DAA2D;IAC3D,QAAQ;IAIR;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;;;;IAK5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE;;;;IAQjC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE;IAuB7B;;OAEG;IACH,YAAY,IAAI,EAAE,EAAE;IAoDpB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IA0EhD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAetC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAepC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC;IAsBhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;CAG9B"}
@@ -1,12 +1,11 @@
1
1
  import { CONTRACT_CLASS_LOGS_PREFIX, L2_L1_MSGS_PREFIX, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NOTES_PREFIX, NULLIFIERS_PREFIX, PRIVATE_LOGS_PREFIX, PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, PUBLIC_LOGS_PREFIX, REVERT_CODE_PREFIX, TX_FEE_PREFIX } from '@aztec/constants';
2
2
  import { makeTuple, makeTupleAsync } from '@aztec/foundation/array';
3
3
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
4
- import { padArrayEnd } from '@aztec/foundation/collection';
5
- import { sha256Trunc } from '@aztec/foundation/crypto';
6
4
  import { Fr } from '@aztec/foundation/fields';
7
5
  import { schemas } from '@aztec/foundation/schemas';
8
6
  import { BufferReader, FieldReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
9
7
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
8
+ import { computeUnbalancedMerkleTreeRoot } from '@aztec/foundation/trees';
10
9
  import { inspect } from 'util';
11
10
  import { z } from 'zod';
12
11
  import { PublicDataWrite } from '../avm/public_data_write.js';
@@ -137,27 +136,13 @@ export class TxEffect {
137
136
  }
138
137
  /**
139
138
  * Computes txOutHash of this tx effect.
140
- * @dev Follows new_sha in variable_merkle_tree.nr
139
+ * @dev Follows new_sha in unbalanced_merkle_tree.nr
141
140
  */ txOutHash() {
142
141
  const { l2ToL1Msgs } = this;
143
142
  if (l2ToL1Msgs.length == 0) {
144
143
  return Buffer.alloc(32);
145
144
  }
146
- const depth = l2ToL1Msgs.length == 1 ? 1 : Math.ceil(Math.log2(l2ToL1Msgs.length));
147
- let thisLayer = padArrayEnd(l2ToL1Msgs.map((msg)=>msg.toBuffer()), Buffer.alloc(32), 2 ** depth);
148
- let nextLayer = [];
149
- for(let i = 0; i < depth; i++){
150
- for(let j = 0; j < thisLayer.length; j += 2){
151
- // Store the hash of each pair one layer up
152
- nextLayer[j / 2] = sha256Trunc(Buffer.concat([
153
- thisLayer[j],
154
- thisLayer[j + 1]
155
- ]));
156
- }
157
- thisLayer = nextLayer;
158
- nextLayer = [];
159
- }
160
- return thisLayer[0];
145
+ return computeUnbalancedMerkleTreeRoot(l2ToL1Msgs.map((msg)=>msg.toBuffer()));
161
146
  }
162
147
  static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1, maxEffects = undefined) {
163
148
  return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX : Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX), PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
@@ -68,8 +68,8 @@ import { TxRequest } from './tx_request.js';
68
68
  }).transform(TxExecutionRequest.from);
69
69
  }
70
70
  toTxRequest() {
71
- return new TxRequest(this.origin, // Entrypoints must be private as as defined by the protocol.
72
- new FunctionData(this.functionSelector, true), this.firstCallArgsHash, this.txContext, this.salt);
71
+ return new TxRequest(this.origin, this.firstCallArgsHash, this.txContext, // Entrypoints must be private as defined by the protocol.
72
+ new FunctionData(this.functionSelector, true), this.salt);
73
73
  }
74
74
  static getFields(fields) {
75
75
  return [
@@ -24,4 +24,11 @@ export declare class TxHash {
24
24
  static zero(): TxHash;
25
25
  static get SIZE(): number;
26
26
  }
27
+ /**
28
+ * Helper class to handle Serialization and Deserialization of TxHashes array.
29
+ **/
30
+ export declare class TxHashArray extends Array<TxHash> {
31
+ static fromBuffer(buffer: Buffer | BufferReader): TxHashArray;
32
+ toBuffer(): Buffer;
33
+ }
27
34
  //# sourceMappingURL=tx_hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;;GAGG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;IAInB,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIf,MAAM;IAIC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM,KAAK,MAAM,iNAEhB;IAED,MAAM,CAAC,IAAI;IAIX,MAAM,KAAK,IAAI,WAEd;CACF"}
1
+ {"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAsC,MAAM,6BAA6B,CAAC;AAI/F;;;GAGG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;IAInB,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIf,MAAM;IAIC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM,KAAK,MAAM,iNAEhB;IAED,MAAM,CAAC,IAAI;IAIX,MAAM,KAAK,IAAI,WAEd;CACF;AAED;;IAEI;AACJ,qBAAa,WAAY,SAAQ,KAAK,CAAC,MAAM,CAAC;IAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAWxC,QAAQ,IAAI,MAAM;CAG1B"}
@@ -1,5 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import { BufferReader, serializeArrayOfBufferableToVector } from '@aztec/foundation/serialize';
3
3
  import { schemas } from '../schemas/index.js';
4
4
  /**
5
5
  * A class representing hash of Aztec transaction.
@@ -50,3 +50,21 @@ import { schemas } from '../schemas/index.js';
50
50
  return Fr.SIZE_IN_BYTES;
51
51
  }
52
52
  }
53
+ /**
54
+ * Helper class to handle Serialization and Deserialization of TxHashes array.
55
+ **/ export class TxHashArray extends Array {
56
+ static fromBuffer(buffer) {
57
+ try {
58
+ const reader = BufferReader.asReader(buffer);
59
+ const hashes = reader.readVector(TxHash);
60
+ return new TxHashArray(...hashes);
61
+ } catch {
62
+ return new TxHashArray();
63
+ }
64
+ }
65
+ toBuffer() {
66
+ return serializeArrayOfBufferableToVector([
67
+ ...this
68
+ ]);
69
+ }
70
+ }