@aztec/stdlib 0.0.1-commit.ff7989d6c → 0.0.1-commit.fff30aa

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 (372) hide show
  1. package/dest/abi/abi.d.ts +57 -85
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +55 -6
  4. package/dest/abi/buffer.d.ts +14 -4
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/buffer.js +25 -4
  7. package/dest/abi/decoder.d.ts +6 -45
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +17 -70
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_selector.js +1 -1
  17. package/dest/abi/function_signature_decoder.d.ts +43 -0
  18. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  19. package/dest/abi/function_signature_decoder.js +66 -0
  20. package/dest/abi/index.d.ts +2 -1
  21. package/dest/abi/index.d.ts.map +1 -1
  22. package/dest/abi/index.js +1 -0
  23. package/dest/abi/selector.d.ts +2 -2
  24. package/dest/abi/selector.d.ts.map +1 -1
  25. package/dest/abi/selector.js +1 -1
  26. package/dest/abi/utils.d.ts +14 -1
  27. package/dest/abi/utils.d.ts.map +1 -1
  28. package/dest/abi/utils.js +15 -0
  29. package/dest/avm/avm.d.ts +300 -300
  30. package/dest/avm/avm_accumulated_data.js +2 -2
  31. package/dest/avm/avm_circuit_public_inputs.js +2 -2
  32. package/dest/avm/avm_proving_request.d.ts +166 -166
  33. package/dest/avm/revert_code.d.ts +9 -4
  34. package/dest/avm/revert_code.d.ts.map +1 -1
  35. package/dest/avm/revert_code.js +16 -21
  36. package/dest/block/l2_block.d.ts +9 -1
  37. package/dest/block/l2_block.d.ts.map +1 -1
  38. package/dest/block/l2_block.js +12 -2
  39. package/dest/block/l2_block_source.d.ts +16 -8
  40. package/dest/block/l2_block_source.d.ts.map +1 -1
  41. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  42. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  43. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  44. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  45. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  46. package/dest/checkpoint/checkpoint.d.ts +2 -1
  47. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  48. package/dest/checkpoint/checkpoint.js +9 -4
  49. package/dest/checkpoint/index.d.ts +2 -1
  50. package/dest/checkpoint/index.d.ts.map +1 -1
  51. package/dest/checkpoint/index.js +1 -0
  52. package/dest/checkpoint/validate.d.ts +36 -0
  53. package/dest/checkpoint/validate.d.ts.map +1 -0
  54. package/dest/checkpoint/validate.js +120 -0
  55. package/dest/config/sequencer-config.d.ts +2 -2
  56. package/dest/config/sequencer-config.d.ts.map +1 -1
  57. package/dest/config/sequencer-config.js +5 -0
  58. package/dest/epoch-helpers/index.d.ts +9 -1
  59. package/dest/epoch-helpers/index.d.ts.map +1 -1
  60. package/dest/epoch-helpers/index.js +13 -2
  61. package/dest/gas/gas_fees.d.ts +1 -1
  62. package/dest/gas/gas_fees.d.ts.map +1 -1
  63. package/dest/gas/gas_fees.js +4 -1
  64. package/dest/gas/gas_settings.d.ts +40 -3
  65. package/dest/gas/gas_settings.d.ts.map +1 -1
  66. package/dest/gas/gas_settings.js +50 -6
  67. package/dest/hash/hash.d.ts +19 -1
  68. package/dest/hash/hash.d.ts.map +1 -1
  69. package/dest/hash/hash.js +29 -0
  70. package/dest/interfaces/allowed_element.d.ts +26 -20
  71. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  72. package/dest/interfaces/allowed_element.js +8 -8
  73. package/dest/interfaces/archiver.d.ts +1 -1
  74. package/dest/interfaces/archiver.d.ts.map +1 -1
  75. package/dest/interfaces/archiver.js +3 -2
  76. package/dest/interfaces/aztec-node-admin.d.ts +64 -27
  77. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  78. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  79. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  80. package/dest/interfaces/aztec-node-debug.js +18 -0
  81. package/dest/interfaces/aztec-node.d.ts +12 -6
  82. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  83. package/dest/interfaces/aztec-node.js +5 -2
  84. package/dest/interfaces/block-builder.d.ts +38 -11
  85. package/dest/interfaces/block-builder.d.ts.map +1 -1
  86. package/dest/interfaces/block-builder.js +13 -6
  87. package/dest/interfaces/client.d.ts +2 -1
  88. package/dest/interfaces/client.d.ts.map +1 -1
  89. package/dest/interfaces/client.js +1 -0
  90. package/dest/interfaces/configs.d.ts +62 -32
  91. package/dest/interfaces/configs.d.ts.map +1 -1
  92. package/dest/interfaces/configs.js +6 -2
  93. package/dest/interfaces/merkle_tree_operations.d.ts +9 -19
  94. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  95. package/dest/interfaces/p2p.d.ts +3 -8
  96. package/dest/interfaces/p2p.d.ts.map +1 -1
  97. package/dest/interfaces/prover-client.d.ts +6 -1
  98. package/dest/interfaces/prover-client.d.ts.map +1 -1
  99. package/dest/interfaces/prover-client.js +7 -1
  100. package/dest/interfaces/validator.d.ts +68 -26
  101. package/dest/interfaces/validator.d.ts.map +1 -1
  102. package/dest/interfaces/validator.js +7 -3
  103. package/dest/interfaces/world_state.d.ts +5 -4
  104. package/dest/interfaces/world_state.d.ts.map +1 -1
  105. package/dest/kernel/claimed_length_array.js +1 -1
  106. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  107. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  108. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  109. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  110. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  111. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  112. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  113. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  114. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  115. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -1
  116. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  117. package/dest/kernel/padded_side_effects.js +1 -1
  118. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
  119. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  120. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -0
  121. package/dest/kernel/private_to_avm_accumulated_data.js +2 -2
  122. package/dest/kernel/private_to_public_accumulated_data.js +2 -2
  123. package/dest/kernel/private_to_rollup_accumulated_data.js +1 -1
  124. package/dest/logs/debug_log_store.d.ts +30 -0
  125. package/dest/logs/debug_log_store.d.ts.map +1 -0
  126. package/dest/logs/debug_log_store.js +30 -0
  127. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  128. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  129. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  130. package/dest/logs/index.d.ts +4 -2
  131. package/dest/logs/index.d.ts.map +1 -1
  132. package/dest/logs/index.js +3 -1
  133. package/dest/logs/log_filter.d.ts +4 -1
  134. package/dest/logs/log_filter.d.ts.map +1 -1
  135. package/dest/logs/log_filter.js +2 -1
  136. package/dest/logs/message_context.d.ts +4 -7
  137. package/dest/logs/message_context.d.ts.map +1 -1
  138. package/dest/logs/message_context.js +23 -9
  139. package/dest/logs/pending_tagged_log.d.ts +2 -3
  140. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  141. package/dest/logs/pending_tagged_log.js +2 -2
  142. package/dest/logs/pre_tag.d.ts +16 -11
  143. package/dest/logs/pre_tag.d.ts.map +1 -1
  144. package/dest/logs/pre_tag.js +2 -2
  145. package/dest/logs/private_log.js +1 -1
  146. package/dest/logs/public_log.d.ts +4 -3
  147. package/dest/logs/public_log.d.ts.map +1 -1
  148. package/dest/logs/public_log.js +9 -2
  149. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  150. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  151. package/dest/logs/shared_secret_derivation.js +15 -9
  152. package/dest/logs/siloed_tag.d.ts +8 -3
  153. package/dest/logs/siloed_tag.d.ts.map +1 -1
  154. package/dest/logs/siloed_tag.js +11 -2
  155. package/dest/logs/tag.js +1 -1
  156. package/dest/logs/tagging_index_range.d.ts +40 -0
  157. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  158. package/dest/logs/tagging_index_range.js +8 -0
  159. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  160. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  161. package/dest/logs/tx_scoped_l2_log.js +7 -0
  162. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  163. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  164. package/dest/messaging/l1_to_l2_message.js +11 -13
  165. package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
  166. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  167. package/dest/messaging/l2_to_l1_membership.js +69 -26
  168. package/dest/noir/index.d.ts +3 -3
  169. package/dest/noir/index.d.ts.map +1 -1
  170. package/dest/note/note_dao.d.ts +1 -1
  171. package/dest/note/note_dao.d.ts.map +1 -1
  172. package/dest/note/note_dao.js +1 -4
  173. package/dest/p2p/attestation_utils.d.ts +11 -1
  174. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  175. package/dest/p2p/attestation_utils.js +45 -0
  176. package/dest/p2p/block_proposal.d.ts +2 -2
  177. package/dest/p2p/block_proposal.d.ts.map +1 -1
  178. package/dest/p2p/block_proposal.js +1 -1
  179. package/dest/p2p/checkpoint_proposal.d.ts +2 -7
  180. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  181. package/dest/p2p/checkpoint_proposal.js +14 -24
  182. package/dest/p2p/client_type.d.ts +2 -5
  183. package/dest/p2p/client_type.d.ts.map +1 -1
  184. package/dest/p2p/client_type.js +0 -7
  185. package/dest/p2p/index.d.ts +1 -2
  186. package/dest/p2p/index.d.ts.map +1 -1
  187. package/dest/p2p/index.js +0 -1
  188. package/dest/p2p/peer_error.d.ts +3 -1
  189. package/dest/p2p/peer_error.d.ts.map +1 -1
  190. package/dest/p2p/peer_error.js +5 -0
  191. package/dest/p2p/topic_type.d.ts +3 -4
  192. package/dest/p2p/topic_type.d.ts.map +1 -1
  193. package/dest/p2p/topic_type.js +7 -24
  194. package/dest/parity/parity_base_private_inputs.js +1 -1
  195. package/dest/proofs/chonk_proof.d.ts +1 -1
  196. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  197. package/dest/proofs/chonk_proof.js +7 -1
  198. package/dest/rollup/base_rollup_hints.js +2 -2
  199. package/dest/rollup/block_root_rollup_private_inputs.js +5 -5
  200. package/dest/rollup/checkpoint_rollup_public_inputs.js +1 -1
  201. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +3 -3
  202. package/dest/rollup/root_rollup_public_inputs.js +1 -1
  203. package/dest/rollup/tree_snapshot_diff_hints.js +2 -2
  204. package/dest/slashing/tally.d.ts +7 -2
  205. package/dest/slashing/tally.d.ts.map +1 -1
  206. package/dest/slashing/tally.js +30 -2
  207. package/dest/tests/factories.d.ts +3 -1
  208. package/dest/tests/factories.d.ts.map +1 -1
  209. package/dest/tests/factories.js +9 -1
  210. package/dest/tests/mocks.d.ts +5 -3
  211. package/dest/tests/mocks.d.ts.map +1 -1
  212. package/dest/tests/mocks.js +20 -15
  213. package/dest/tx/block_header.d.ts +3 -1
  214. package/dest/tx/block_header.d.ts.map +1 -1
  215. package/dest/tx/block_header.js +4 -0
  216. package/dest/tx/capsule.d.ts +6 -2
  217. package/dest/tx/capsule.d.ts.map +1 -1
  218. package/dest/tx/capsule.js +9 -3
  219. package/dest/tx/private_execution_result.d.ts +6 -6
  220. package/dest/tx/private_execution_result.d.ts.map +1 -1
  221. package/dest/tx/private_execution_result.js +6 -6
  222. package/dest/tx/profiling.d.ts +14 -2
  223. package/dest/tx/profiling.d.ts.map +1 -1
  224. package/dest/tx/profiling.js +13 -3
  225. package/dest/tx/protocol_contracts.js +2 -2
  226. package/dest/tx/simulated_tx.d.ts +63 -77
  227. package/dest/tx/simulated_tx.d.ts.map +1 -1
  228. package/dest/tx/simulated_tx.js +7 -4
  229. package/dest/tx/tx.d.ts +6 -5
  230. package/dest/tx/tx.d.ts.map +1 -1
  231. package/dest/tx/tx.js +18 -6
  232. package/dest/tx/tx_receipt.d.ts +29 -6
  233. package/dest/tx/tx_receipt.d.ts.map +1 -1
  234. package/dest/tx/tx_receipt.js +23 -19
  235. package/dest/tx/validator/error_texts.d.ts +9 -1
  236. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  237. package/dest/tx/validator/error_texts.js +10 -0
  238. package/dest/update-checker/index.d.ts +3 -2
  239. package/dest/update-checker/index.d.ts.map +1 -1
  240. package/dest/update-checker/index.js +2 -1
  241. package/dest/update-checker/package_version.d.ts +3 -0
  242. package/dest/update-checker/package_version.d.ts.map +1 -0
  243. package/dest/update-checker/package_version.js +24 -0
  244. package/dest/update-checker/version_checker.d.ts +25 -0
  245. package/dest/update-checker/version_checker.d.ts.map +1 -0
  246. package/dest/update-checker/version_checker.js +50 -0
  247. package/dest/validators/errors.d.ts +6 -1
  248. package/dest/validators/errors.d.ts.map +1 -1
  249. package/dest/validators/errors.js +7 -0
  250. package/dest/versioning/versioning.d.ts +4 -2
  251. package/dest/versioning/versioning.d.ts.map +1 -1
  252. package/dest/versioning/versioning.js +4 -1
  253. package/dest/vks/vk_data.js +1 -1
  254. package/package.json +10 -10
  255. package/src/abi/abi.ts +78 -2
  256. package/src/abi/buffer.ts +25 -4
  257. package/src/abi/decoder.ts +36 -82
  258. package/src/abi/encoder.ts +49 -6
  259. package/src/abi/event_metadata_definition.ts +2 -0
  260. package/src/abi/function_selector.ts +1 -1
  261. package/src/abi/function_signature_decoder.ts +77 -0
  262. package/src/abi/index.ts +1 -0
  263. package/src/abi/selector.ts +1 -1
  264. package/src/abi/utils.ts +25 -0
  265. package/src/avm/avm_accumulated_data.ts +6 -6
  266. package/src/avm/avm_circuit_public_inputs.ts +4 -4
  267. package/src/avm/revert_code.ts +26 -25
  268. package/src/block/l2_block.ts +13 -1
  269. package/src/block/l2_block_source.ts +16 -7
  270. package/src/block/l2_block_stream/interfaces.ts +6 -2
  271. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  272. package/src/checkpoint/checkpoint.ts +12 -3
  273. package/src/checkpoint/index.ts +1 -0
  274. package/src/checkpoint/validate.ts +230 -0
  275. package/src/config/sequencer-config.ts +6 -1
  276. package/src/epoch-helpers/index.ts +22 -0
  277. package/src/gas/README.md +123 -0
  278. package/src/gas/gas_fees.ts +7 -1
  279. package/src/gas/gas_settings.ts +65 -12
  280. package/src/hash/hash.ts +34 -0
  281. package/src/interfaces/allowed_element.ts +29 -9
  282. package/src/interfaces/archiver.ts +3 -2
  283. package/src/interfaces/aztec-node-debug.ts +40 -0
  284. package/src/interfaces/aztec-node.ts +24 -5
  285. package/src/interfaces/block-builder.ts +60 -14
  286. package/src/interfaces/client.ts +1 -0
  287. package/src/interfaces/configs.ts +25 -8
  288. package/src/interfaces/merkle_tree_operations.ts +8 -18
  289. package/src/interfaces/p2p.ts +2 -13
  290. package/src/interfaces/prover-client.ts +8 -0
  291. package/src/interfaces/validator.ts +19 -3
  292. package/src/interfaces/world_state.ts +4 -3
  293. package/src/kernel/claimed_length_array.ts +2 -2
  294. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  295. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  296. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  297. package/src/kernel/hints/private_kernel_reset_hints.ts +5 -2
  298. package/src/kernel/hints/read_request_hints.ts +3 -3
  299. package/src/kernel/padded_side_effects.ts +3 -3
  300. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +9 -0
  301. package/src/kernel/private_to_avm_accumulated_data.ts +4 -4
  302. package/src/kernel/private_to_public_accumulated_data.ts +10 -10
  303. package/src/kernel/private_to_rollup_accumulated_data.ts +5 -5
  304. package/src/logs/debug_log_store.ts +54 -0
  305. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  306. package/src/logs/index.ts +3 -1
  307. package/src/logs/log_filter.ts +5 -0
  308. package/src/logs/message_context.ts +17 -7
  309. package/src/logs/pending_tagged_log.ts +1 -3
  310. package/src/logs/pre_tag.ts +5 -5
  311. package/src/logs/private_log.ts +1 -1
  312. package/src/logs/public_log.ts +15 -3
  313. package/src/logs/shared_secret_derivation.ts +21 -10
  314. package/src/logs/siloed_tag.ts +14 -3
  315. package/src/logs/tag.ts +1 -1
  316. package/src/logs/tagging_index_range.ts +24 -0
  317. package/src/logs/tx_scoped_l2_log.ts +16 -0
  318. package/src/messaging/l1_to_l2_message.ts +12 -9
  319. package/src/messaging/l2_to_l1_membership.ts +98 -33
  320. package/src/noir/index.ts +2 -2
  321. package/src/note/note_dao.ts +1 -4
  322. package/src/p2p/attestation_utils.ts +56 -0
  323. package/src/p2p/block_proposal.ts +1 -1
  324. package/src/p2p/checkpoint_proposal.ts +24 -38
  325. package/src/p2p/client_type.ts +0 -6
  326. package/src/p2p/index.ts +0 -1
  327. package/src/p2p/peer_error.ts +7 -0
  328. package/src/p2p/topic_type.ts +8 -15
  329. package/src/parity/parity_base_private_inputs.ts +1 -1
  330. package/src/proofs/chonk_proof.ts +9 -1
  331. package/src/rollup/base_rollup_hints.ts +2 -2
  332. package/src/rollup/block_root_rollup_private_inputs.ts +8 -8
  333. package/src/rollup/checkpoint_rollup_public_inputs.ts +2 -2
  334. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +4 -4
  335. package/src/rollup/root_rollup_public_inputs.ts +2 -2
  336. package/src/rollup/tree_snapshot_diff_hints.ts +5 -5
  337. package/src/slashing/tally.ts +34 -1
  338. package/src/tests/factories.ts +10 -1
  339. package/src/tests/mocks.ts +26 -11
  340. package/src/tx/block_header.ts +6 -0
  341. package/src/tx/capsule.ts +10 -2
  342. package/src/tx/private_execution_result.ts +5 -5
  343. package/src/tx/profiling.ts +11 -2
  344. package/src/tx/protocol_contracts.ts +2 -2
  345. package/src/tx/simulated_tx.ts +14 -3
  346. package/src/tx/tx.ts +20 -11
  347. package/src/tx/tx_receipt.ts +28 -16
  348. package/src/tx/validator/error_texts.ts +12 -0
  349. package/src/update-checker/index.ts +2 -1
  350. package/src/update-checker/package_version.ts +30 -0
  351. package/src/update-checker/version_checker.ts +65 -0
  352. package/src/validators/errors.ts +9 -0
  353. package/src/versioning/versioning.ts +4 -1
  354. package/src/vks/vk_data.ts +1 -1
  355. package/dest/ha-signing/config.d.ts +0 -101
  356. package/dest/ha-signing/config.d.ts.map +0 -1
  357. package/dest/ha-signing/config.js +0 -92
  358. package/dest/ha-signing/index.d.ts +0 -3
  359. package/dest/ha-signing/index.d.ts.map +0 -1
  360. package/dest/ha-signing/index.js +0 -2
  361. package/dest/ha-signing/types.d.ts +0 -85
  362. package/dest/ha-signing/types.d.ts.map +0 -1
  363. package/dest/ha-signing/types.js +0 -32
  364. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  365. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  366. package/dest/update-checker/update-checker.d.ts +0 -49
  367. package/dest/update-checker/update-checker.d.ts.map +0 -1
  368. package/dest/update-checker/update-checker.js +0 -130
  369. package/src/ha-signing/config.ts +0 -149
  370. package/src/ha-signing/index.ts +0 -18
  371. package/src/ha-signing/types.ts +0 -112
  372. package/src/update-checker/update-checker.ts +0 -166
@@ -1,4 +1,5 @@
1
1
  import { MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
2
+ import { range } from '@aztec/foundation/array';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  /**
4
5
  * Additional information needed to process a message.
@@ -12,31 +13,41 @@ import { Fr } from '@aztec/foundation/curves/bn254';
12
13
  txHash;
13
14
  uniqueNoteHashesInTx;
14
15
  firstNullifierInTx;
15
- recipient;
16
- constructor(txHash, uniqueNoteHashesInTx, firstNullifierInTx, recipient){
16
+ constructor(txHash, uniqueNoteHashesInTx, firstNullifierInTx){
17
17
  this.txHash = txHash;
18
18
  this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
19
19
  this.firstNullifierInTx = firstNullifierInTx;
20
- this.recipient = recipient;
21
20
  }
22
21
  toFields() {
23
22
  return [
24
23
  this.txHash.hash,
25
24
  ...serializeBoundedVec(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
26
- this.firstNullifierInTx,
27
- this.recipient.toField()
25
+ this.firstNullifierInTx
28
26
  ];
29
27
  }
30
28
  toNoirStruct() {
31
29
  /* eslint-disable camelcase */ return {
32
30
  tx_hash: this.txHash.hash,
33
31
  unique_note_hashes_in_tx: this.uniqueNoteHashesInTx,
34
- first_nullifier_in_tx: this.firstNullifierInTx,
35
- recipient: this.recipient
32
+ first_nullifier_in_tx: this.firstNullifierInTx
36
33
  };
37
34
  /* eslint-enable camelcase */ }
38
- static fromTxEffectAndRecipient(txEffect, recipient) {
39
- return new MessageContext(txEffect.txHash, txEffect.noteHashes, txEffect.nullifiers[0], recipient);
35
+ static toEmptyFields() {
36
+ const serializationLen = 1 /* txHash */ + MAX_NOTE_HASHES_PER_TX + 1 /* uniqueNoteHashesInTx BVec */ + 1; /* firstNullifierInTx */
37
+ return range(serializationLen).map((_)=>Fr.zero());
38
+ }
39
+ static toSerializedOption(response) {
40
+ if (response) {
41
+ return [
42
+ new Fr(1),
43
+ ...response.toFields()
44
+ ];
45
+ } else {
46
+ return [
47
+ new Fr(0),
48
+ ...MessageContext.toEmptyFields()
49
+ ];
50
+ }
40
51
  }
41
52
  }
42
53
  /**
@@ -46,6 +57,9 @@ import { Fr } from '@aztec/foundation/curves/bn254';
46
57
  * @returns The serialized bounded vector as Fr[]
47
58
  * @dev Copied over from pending_tagged_log.ts.
48
59
  */ function serializeBoundedVec(values, maxLength) {
60
+ if (values.length > maxLength) {
61
+ throw new Error(`Attempted to serialize ${values} values into a BoundedVec with max length ${maxLength}`);
62
+ }
49
63
  const lengthDiff = maxLength - values.length;
50
64
  const zeroPaddingArray = Array(lengthDiff).fill(Fr.ZERO);
51
65
  const storage = values.concat(zeroPaddingArray);
@@ -1,5 +1,4 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import type { AztecAddress } from '../aztec-address/index.js';
3
2
  import type { TxHash } from '../tx/tx_hash.js';
4
3
  /**
5
4
  * Represents a pending tagged log as it is stored in the pending tagged log array to which the fetchTaggedLogs oracle
@@ -8,7 +7,7 @@ import type { TxHash } from '../tx/tx_hash.js';
8
7
  export declare class PendingTaggedLog {
9
8
  log: Fr[];
10
9
  private context;
11
- constructor(log: Fr[], txHash: TxHash, uniqueNoteHashesInTx: Fr[], firstNullifierInTx: Fr, recipient: AztecAddress);
10
+ constructor(log: Fr[], txHash: TxHash, uniqueNoteHashesInTx: Fr[], firstNullifierInTx: Fr);
12
11
  toFields(): Fr[];
13
12
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZ190YWdnZWRfbG9nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9wZW5kaW5nX3RhZ2dlZF9sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRy9DOzs7R0FHRztBQUNILHFCQUFhLGdCQUFnQjtJQUlsQixHQUFHLEVBQUUsRUFBRSxFQUFFO0lBSGxCLE9BQU8sQ0FBQyxPQUFPLENBQWlCO0lBRWhDLFlBQ1MsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxFQUMxQixrQkFBa0IsRUFBRSxFQUFFLEVBQ3RCLFNBQVMsRUFBRSxZQUFZLEVBR3hCO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0NBQ0YifQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZ190YWdnZWRfbG9nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9wZW5kaW5nX3RhZ2dlZF9sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRy9DOzs7R0FHRztBQUNILHFCQUFhLGdCQUFnQjtJQUlsQixHQUFHLEVBQUUsRUFBRSxFQUFFO0lBSGxCLE9BQU8sQ0FBQyxPQUFPLENBQWlCO0lBRWhDLFlBQ1MsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxFQUMxQixrQkFBa0IsRUFBRSxFQUFFLEVBR3ZCO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"pending_tagged_log.d.ts","sourceRoot":"","sources":["../../src/logs/pending_tagged_log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;GAGG;AACH,qBAAa,gBAAgB;IAIlB,GAAG,EAAE,EAAE,EAAE;IAHlB,OAAO,CAAC,OAAO,CAAiB;IAEhC,YACS,GAAG,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE,EACtB,SAAS,EAAE,YAAY,EAGxB;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;CACF"}
1
+ {"version":3,"file":"pending_tagged_log.d.ts","sourceRoot":"","sources":["../../src/logs/pending_tagged_log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;GAGG;AACH,qBAAa,gBAAgB;IAIlB,GAAG,EAAE,EAAE,EAAE;IAHlB,OAAO,CAAC,OAAO,CAAiB;IAEhC,YACS,GAAG,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE,EAGvB;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;CACF"}
@@ -7,9 +7,9 @@ import { MessageContext } from './message_context.js';
7
7
  */ export class PendingTaggedLog {
8
8
  log;
9
9
  context;
10
- constructor(log, txHash, uniqueNoteHashesInTx, firstNullifierInTx, recipient){
10
+ constructor(log, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
11
11
  this.log = log;
12
- this.context = new MessageContext(txHash, uniqueNoteHashesInTx, firstNullifierInTx, recipient);
12
+ this.context = new MessageContext(txHash, uniqueNoteHashesInTx, firstNullifierInTx);
13
13
  }
14
14
  toFields() {
15
15
  return [
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { type DirectionalAppTaggingSecret } from './directional_app_tagging_secret.js';
2
+ import { type ExtendedDirectionalAppTaggingSecret } from './extended_directional_app_tagging_secret.js';
3
3
  /**
4
4
  * Represents a preimage of a private log tag (see `Tag` in `pxe/src/tagging`).
5
5
  *
@@ -8,27 +8,32 @@ import { type DirectionalAppTaggingSecret } from './directional_app_tagging_secr
8
8
  * around this.
9
9
  */
10
10
  export type PreTag = {
11
- secret: DirectionalAppTaggingSecret;
11
+ extendedSecret: ExtendedDirectionalAppTaggingSecret;
12
12
  index: number;
13
13
  };
14
14
  export declare const PreTagSchema: z.ZodObject<{
15
- secret: z.ZodObject<{
16
- value: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
15
+ extendedSecret: z.ZodObject<{
16
+ secret: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
17
+ app: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
17
18
  }, "strip", z.ZodTypeAny, {
18
- value: import("@aztec/foundation/schemas").Fr;
19
+ secret: import("@aztec/foundation/schemas").Fr;
20
+ app: import("../aztec-address/index.js").AztecAddress;
19
21
  }, {
20
- value: string;
22
+ secret: string;
23
+ app?: any;
21
24
  }>;
22
25
  index: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
23
26
  }, "strip", z.ZodTypeAny, {
24
- secret: {
25
- value: import("@aztec/foundation/schemas").Fr;
27
+ extendedSecret: {
28
+ secret: import("@aztec/foundation/schemas").Fr;
29
+ app: import("../aztec-address/index.js").AztecAddress;
26
30
  };
27
31
  index: number;
28
32
  }, {
29
- secret: {
30
- value: string;
33
+ extendedSecret: {
34
+ secret: string;
35
+ app?: any;
31
36
  };
32
37
  index: string | number | bigint;
33
38
  }>;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvcHJlX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxLQUFLLDJCQUEyQixFQUVqQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdDOzs7Ozs7R0FNRztBQUNILE1BQU0sTUFBTSxNQUFNLEdBQUc7SUFDbkIsTUFBTSxFQUFFLDJCQUEyQixDQUFDO0lBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHdkIsQ0FBQyJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvcHJlX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxLQUFLLG1DQUFtQyxFQUV6QyxNQUFNLDhDQUE4QyxDQUFDO0FBRXREOzs7Ozs7R0FNRztBQUNILE1BQU0sTUFBTSxNQUFNLEdBQUc7SUFDbkIsY0FBYyxFQUFFLG1DQUFtQyxDQUFDO0lBQ3BELEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUd2QixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"pre_tag.d.ts","sourceRoot":"","sources":["../../src/logs/pre_tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,qCAAqC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,2BAA2B,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;EAGvB,CAAC"}
1
+ {"version":3,"file":"pre_tag.d.ts","sourceRoot":"","sources":["../../src/logs/pre_tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,8CAA8C,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,cAAc,EAAE,mCAAmC,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { schemas } from '@aztec/foundation/schemas';
2
2
  import { z } from 'zod';
3
- import { DirectionalAppTaggingSecretSchema } from './directional_app_tagging_secret.js';
3
+ import { ExtendedDirectionalAppTaggingSecretSchema } from './extended_directional_app_tagging_secret.js';
4
4
  export const PreTagSchema = z.object({
5
- secret: DirectionalAppTaggingSecretSchema,
5
+ extendedSecret: ExtendedDirectionalAppTaggingSecretSchema,
6
6
  index: schemas.Integer
7
7
  });
@@ -59,7 +59,7 @@ export class PrivateLog {
59
59
  }
60
60
  static fromBuffer(buffer) {
61
61
  const reader = BufferReader.asReader(buffer);
62
- return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
62
+ return new PrivateLog(reader.readTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
63
63
  }
64
64
  static random(tag = Fr.random()) {
65
65
  const fields = makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random);
@@ -30,14 +30,15 @@ export declare class FlatPublicLogs {
30
30
  isEmpty(): boolean;
31
31
  }
32
32
  export declare class PublicLog {
33
- contractAddress: AztecAddress;
34
- fields: Fr[];
33
+ readonly contractAddress: AztecAddress;
34
+ readonly fields: Fr[];
35
35
  constructor(contractAddress: AztecAddress, fields: Fr[]);
36
36
  static from(fields: FieldsOf<PublicLog>): PublicLog;
37
37
  static getFields(fields: FieldsOf<PublicLog>): readonly [AztecAddress, Fr[]];
38
38
  toFields(): Fr[];
39
39
  static fromFields(fields: Fr[] | FieldReader): PublicLog;
40
40
  sizeInFields(): number;
41
+ /** Returns the serialized log (field as in noir field and not a struct field). */
41
42
  getEmittedFields(): Fr[];
42
43
  getEmittedFieldsWithoutTag(): Fr[];
43
44
  isEmpty(): boolean;
@@ -51,4 +52,4 @@ export declare class PublicLog {
51
52
  static get schema(): ZodFor<PublicLog>;
52
53
  [inspect.custom](): string;
53
54
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvcHVibGljX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPekQscUJBQWEsY0FBYztJQUdoQixNQUFNLEVBQUUsTUFBTTtJQUNkLE9BQU8sRUFBRSxFQUFFLEVBQUU7SUFGdEIsWUFDUyxNQUFNLEVBQUUsTUFBTSxFQUNkLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFRckI7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQjtJQU1sQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsa0JBSS9EO0lBRUQsWUFBWSxTQUVYO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLGtCQUVoQztJQUVELE1BQU0sZ0JBVUw7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FPMUM7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGtCQUk5QztJQUdELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsa0JBUzNDO0lBRUQsTUFBTSxDQUFDLEtBQUssbUJBRVg7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsY0FBYyxDQUsvQztJQUVELE9BQU8sWUFFTjtDQUNGO0FBRUQscUJBQWEsU0FBUztJQUVYLGVBQWUsRUFBRSxZQUFZO0lBQzdCLE1BQU0sRUFBRSxFQUFFLEVBQUU7SUFGckIsWUFDUyxlQUFlLEVBQUUsWUFBWSxFQUM3QixNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQ2pCO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUV0QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsaUNBRTNDO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxhQUkzQztJQUVELFlBQVksV0FFWDtJQUVELGdCQUFnQixTQUVmO0lBRUQsMEJBQTBCLFNBRXpCO0lBRUQsT0FBTyxZQUVOO0lBRUQsTUFBTSxDQUFDLEtBQUssY0FFWDtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksYUFJOUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsU0FBUyxDQUsxQztJQUVELE9BQWEsTUFBTSx1QkFLbEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksV0FNakI7SUFFRCxlQUFlLElBQUksTUFBTSxDQUV4QjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQU9yQztJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FLekI7Q0FDRiJ9
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvcHVibGljX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPekQscUJBQWEsY0FBYztJQUdoQixNQUFNLEVBQUUsTUFBTTtJQUNkLE9BQU8sRUFBRSxFQUFFLEVBQUU7SUFGdEIsWUFDUyxNQUFNLEVBQUUsTUFBTSxFQUNkLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFRckI7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQjtJQU1sQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsa0JBSS9EO0lBRUQsWUFBWSxTQUVYO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLGtCQUVoQztJQUVELE1BQU0sZ0JBVUw7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FPMUM7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGtCQU85QztJQUdELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsa0JBUzNDO0lBRUQsTUFBTSxDQUFDLEtBQUssbUJBRVg7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsY0FBYyxDQUsvQztJQUVELE9BQU8sWUFFTjtDQUNGO0FBRUQscUJBQWEsU0FBUzthQUVGLGVBQWUsRUFBRSxZQUFZO2FBQzdCLE1BQU0sRUFBRSxFQUFFLEVBQUU7SUFGOUIsWUFDa0IsZUFBZSxFQUFFLFlBQVksRUFDN0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUMxQjtJQUVKLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFFdEM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLGlDQUUzQztJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsYUFJM0M7SUFFRCxZQUFZLFdBRVg7SUFFRCxrRkFBa0Y7SUFDbEYsZ0JBQWdCLFNBR2Y7SUFFRCwwQkFBMEIsU0FFekI7SUFFRCxPQUFPLFlBRU47SUFFRCxNQUFNLENBQUMsS0FBSyxjQUVYO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxhQU85QztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxTQUFTLENBSzFDO0lBRUQsT0FBYSxNQUFNLHVCQUtsQjtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxXQU1qQjtJQUVELGVBQWUsSUFBSSxNQUFNLENBRXhCO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBT3JDO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUt6QjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,qBAAa,cAAc;IAGhB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,EAAE;IAFtB,YACS,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,EAAE,EAAE,EAQrB;IAED,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,kBAI/D;IAED,YAAY,SAEX;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,kBAEhC;IAED,MAAM,gBAUL;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,CAO1C;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,kBAI9C;IAGD,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,kBAS3C;IAED,MAAM,CAAC,KAAK,mBAEX;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAK/C;IAED,OAAO,YAEN;CACF;AAED,qBAAa,SAAS;IAEX,eAAe,EAAE,YAAY;IAC7B,MAAM,EAAE,EAAE,EAAE;IAFrB,YACS,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,EAAE,EAAE,EACjB;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,aAEtC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,iCAE3C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,aAI3C;IAED,YAAY,WAEX;IAED,gBAAgB,SAEf;IAED,0BAA0B,SAEzB;IAED,OAAO,YAEN;IAED,MAAM,CAAC,KAAK,cAEX;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,aAI9C;IAED,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAK1C;IAED,OAAa,MAAM,uBAKlB;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,WAMjB;IAED,eAAe,IAAI,MAAM,CAExB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAOrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
1
+ {"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,qBAAa,cAAc;IAGhB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,EAAE;IAFtB,YACS,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,EAAE,EAAE,EAQrB;IAED,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,kBAI/D;IAED,YAAY,SAEX;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,kBAEhC;IAED,MAAM,gBAUL;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,CAO1C;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,kBAO9C;IAGD,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,kBAS3C;IAED,MAAM,CAAC,KAAK,mBAEX;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAK/C;IAED,OAAO,YAEN;CACF;AAED,qBAAa,SAAS;aAEF,eAAe,EAAE,YAAY;aAC7B,MAAM,EAAE,EAAE,EAAE;IAF9B,YACkB,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,EAAE,EAAE,EAC1B;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,aAEtC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,iCAE3C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,aAI3C;IAED,YAAY,WAEX;IAED,kFAAkF;IAClF,gBAAgB,SAGf;IAED,0BAA0B,SAEzB;IAED,OAAO,YAEN;IAED,MAAM,CAAC,KAAK,cAEX;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,aAO9C;IAED,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAK1C;IAED,OAAa,MAAM,uBAKlB;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,WAMjB;IAED,eAAe,IAAI,MAAM,CAExB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAOrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
@@ -1,5 +1,5 @@
1
1
  var _computedKey;
2
- import { FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH, PUBLIC_LOG_HEADER_LENGTH } from '@aztec/constants';
2
+ import { FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH, MAX_PUBLIC_LOG_SIZE_IN_FIELDS, PUBLIC_LOG_HEADER_LENGTH } from '@aztec/constants';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { schemas } from '@aztec/foundation/schemas';
5
5
  import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -66,6 +66,9 @@ export class FlatPublicLogs {
66
66
  static fromBuffer(buffer) {
67
67
  const reader = BufferReader.asReader(buffer);
68
68
  const length = reader.readNumber();
69
+ if (length > FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH) {
70
+ throw new Error(`FlatPublicLogs length ${length} exceeds maximum ${FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH}`);
71
+ }
69
72
  return this.fromUnpaddedPayload(reader.readArray(length, Fr));
70
73
  }
71
74
  // ToFields and fromFields expect the noir style representation, with constant length payload.
@@ -133,7 +136,8 @@ export class PublicLog {
133
136
  sizeInFields() {
134
137
  return this.fields.length + PUBLIC_LOG_HEADER_LENGTH;
135
138
  }
136
- getEmittedFields() {
139
+ /** Returns the serialized log (field as in noir field and not a struct field). */ getEmittedFields() {
140
+ // We slice from 0 to return a shallow copy.
137
141
  return this.fields.slice(0);
138
142
  }
139
143
  getEmittedFieldsWithoutTag() {
@@ -151,6 +155,9 @@ export class PublicLog {
151
155
  static fromBuffer(buffer) {
152
156
  const reader = BufferReader.asReader(buffer);
153
157
  const fieldsLength = reader.readNumber();
158
+ if (fieldsLength > MAX_PUBLIC_LOG_SIZE_IN_FIELDS) {
159
+ throw new Error(`PublicLog fields length ${fieldsLength} exceeds maximum ${MAX_PUBLIC_LOG_SIZE_IN_FIELDS}`);
160
+ }
154
161
  return new PublicLog(reader.readObject(AztecAddress), reader.readArray(fieldsLength, Fr));
155
162
  }
156
163
  static fromPlainObject(obj) {
@@ -1,17 +1,18 @@
1
- import type { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
3
+ import type { AztecAddress } from '../aztec-address/index.js';
2
4
  import type { PublicKey } from '../keys/public_key.js';
3
5
  /**
4
- * Derive an Elliptic Curve Diffie-Hellman (ECDH) Shared Secret.
5
- * The function takes in an ECDH public key, a private key, and a Grumpkin instance to compute
6
- * the shared secret.
6
+ * Derives an app-siloed ECDH shared secret.
7
+ *
8
+ * Computes the raw ECDH shared secret `S = secretKey * publicKey`, then app-silos it:
9
+ * `s_app = h(DOM_SEP__APP_SILOED_ECDH_SHARED_SECRET, S.x, S.y, contractAddress)`
7
10
  *
8
11
  * @param secretKey - The secret key used to derive shared secret.
9
12
  * @param publicKey - The public key used to derive shared secret.
10
- * @returns A derived shared secret.
13
+ * @param contractAddress - The address of the calling contract, used for app-siloing.
14
+ * @returns The app-siloed shared secret as a Field.
11
15
  * @throws If the publicKey is zero.
12
- *
13
- * TODO(#12656): This function is kept around because of the utilityGetSharedSecret oracle. Nuke this once returning
14
- * the app-siloed secret.
15
16
  */
16
- export declare function deriveEcdhSharedSecret(secretKey: GrumpkinScalar, publicKey: PublicKey): Promise<Point>;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkX3NlY3JldF9kZXJpdmF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9zaGFyZWRfc2VjcmV0X2Rlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9FLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQU90RyJ9
17
+ export declare function deriveAppSiloedSharedSecret(secretKey: GrumpkinScalar, publicKey: PublicKey, contractAddress: AztecAddress): Promise<Fr>;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkX3NlY3JldF9kZXJpdmF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9zaGFyZWRfc2VjcmV0X2Rlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCx3QkFBc0IsMkJBQTJCLENBQy9DLFNBQVMsRUFBRSxjQUFjLEVBQ3pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGVBQWUsRUFBRSxZQUFZLEdBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FXYiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"shared_secret_derivation.d.ts","sourceRoot":"","sources":["../../src/logs/shared_secret_derivation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAOtG"}
1
+ {"version":3,"file":"shared_secret_derivation.d.ts","sourceRoot":"","sources":["../../src/logs/shared_secret_derivation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,EAAE,CAAC,CAWb"}
@@ -1,19 +1,25 @@
1
+ import { DomainSeparator } from '@aztec/constants';
1
2
  import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
3
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
2
4
  /**
3
- * Derive an Elliptic Curve Diffie-Hellman (ECDH) Shared Secret.
4
- * The function takes in an ECDH public key, a private key, and a Grumpkin instance to compute
5
- * the shared secret.
5
+ * Derives an app-siloed ECDH shared secret.
6
+ *
7
+ * Computes the raw ECDH shared secret `S = secretKey * publicKey`, then app-silos it:
8
+ * `s_app = h(DOM_SEP__APP_SILOED_ECDH_SHARED_SECRET, S.x, S.y, contractAddress)`
6
9
  *
7
10
  * @param secretKey - The secret key used to derive shared secret.
8
11
  * @param publicKey - The public key used to derive shared secret.
9
- * @returns A derived shared secret.
12
+ * @param contractAddress - The address of the calling contract, used for app-siloing.
13
+ * @returns The app-siloed shared secret as a Field.
10
14
  * @throws If the publicKey is zero.
11
- *
12
- * TODO(#12656): This function is kept around because of the utilityGetSharedSecret oracle. Nuke this once returning
13
- * the app-siloed secret.
14
- */ export function deriveEcdhSharedSecret(secretKey, publicKey) {
15
+ */ export async function deriveAppSiloedSharedSecret(secretKey, publicKey, contractAddress) {
15
16
  if (publicKey.isZero()) {
16
17
  throw new Error(`Attempting to derive a shared secret with a zero public key. You have probably passed a zero public key in your Noir code somewhere thinking that the note won't be broadcast... but it was.`);
17
18
  }
18
- return Grumpkin.mul(publicKey, secretKey);
19
+ const rawSharedSecret = await Grumpkin.mul(publicKey, secretKey);
20
+ return poseidon2HashWithSeparator([
21
+ rawSharedSecret.x,
22
+ rawSharedSecret.y,
23
+ contractAddress
24
+ ], DomainSeparator.APP_SILOED_ECDH_SHARED_SECRET);
19
25
  }
@@ -1,7 +1,8 @@
1
1
  import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { ZodFor } from '@aztec/foundation/schemas';
3
3
  import type { AztecAddress } from '../aztec-address/index.js';
4
- import type { Tag } from './tag.js';
4
+ import type { PreTag } from './pre_tag.js';
5
+ import { Tag } from './tag.js';
5
6
  /** Branding to ensure fields are not interchangeable types. */
6
7
  export interface SiloedTag {
7
8
  /** Brand. */
@@ -14,10 +15,14 @@ export interface SiloedTag {
14
15
  export declare class SiloedTag {
15
16
  readonly value: Fr;
16
17
  constructor(value: Fr);
17
- static compute(tag: Tag, app: AztecAddress): Promise<SiloedTag>;
18
+ static compute(preTag: PreTag): Promise<SiloedTag>;
19
+ /**
20
+ * Unlike `compute`, this expects a tag whose value is already domain-separated.
21
+ */
22
+ static computeFromTagAndApp(tag: Tag, app: AztecAddress): Promise<SiloedTag>;
18
23
  toString(): string;
19
24
  toJSON(): string;
20
25
  equals(other: SiloedTag): boolean;
21
26
  static get schema(): ZodFor<SiloedTag>;
22
27
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsb2VkX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3Mvc2lsb2VkX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJcEMsK0RBQStEO0FBQy9ELE1BQU0sV0FBVyxTQUFTO0lBQ3hCLGFBQWE7SUFDYixTQUFTLEVBQUUsV0FBVyxDQUFDO0NBQ3hCO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsU0FBUzthQUNRLEtBQUssRUFBRSxFQUFFO0lBQXJDLFlBQTRCLEtBQUssRUFBRSxFQUFFLEVBQUk7SUFFekMsT0FBYSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHcEU7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxNQUFNLENBRWY7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBRXJDO0NBQ0YifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsb2VkX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3Mvc2lsb2VkX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkvQiwrREFBK0Q7QUFDL0QsTUFBTSxXQUFXLFNBQVM7SUFDeEIsYUFBYTtJQUNiLFNBQVMsRUFBRSxXQUFXLENBQUM7Q0FDeEI7QUFFRDs7O0dBR0c7QUFDSCxxQkFBYSxTQUFTO2FBQ1EsS0FBSyxFQUFFLEVBQUU7SUFBckMsWUFBNEIsS0FBSyxFQUFFLEVBQUUsRUFBSTtJQUV6QyxPQUFhLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FJdkQ7SUFFRDs7T0FFRztJQUNILE9BQWEsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHakY7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxNQUFNLENBRWY7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBRXJDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIpC,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,SAAS,EAAE,WAAW,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,SAAS;aACQ,KAAK,EAAE,EAAE;IAArC,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAGpE;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAErC;CACF"}
1
+ {"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,SAAS,EAAE,WAAW,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,SAAS;aACQ,KAAK,EAAE,EAAE;IAArC,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIvD;IAED;;OAEG;IACH,OAAa,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAGjF;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAErC;CACF"}
@@ -1,5 +1,7 @@
1
- import { computeSiloedPrivateLogFirstField } from '../hash/hash.js';
1
+ import { DomainSeparator } from '@aztec/constants';
2
+ import { computeLogTag, computeSiloedPrivateLogFirstField } from '../hash/hash.js';
2
3
  import { schemas } from '../schemas/schemas.js';
4
+ import { Tag } from './tag.js';
3
5
  /**
4
6
  * Represents a tag used in private log as it "appears on the chain" - that is the tag is siloed with a contract
5
7
  * address that emitted the log.
@@ -8,7 +10,14 @@ import { schemas } from '../schemas/schemas.js';
8
10
  constructor(value){
9
11
  this.value = value;
10
12
  }
11
- static async compute(tag, app) {
13
+ static async compute(preTag) {
14
+ const tag = await Tag.compute(preTag);
15
+ const logTag = await computeLogTag(tag.value, DomainSeparator.UNCONSTRAINED_MSG_LOG_TAG);
16
+ return SiloedTag.computeFromTagAndApp(new Tag(logTag), preTag.extendedSecret.app);
17
+ }
18
+ /**
19
+ * Unlike `compute`, this expects a tag whose value is already domain-separated.
20
+ */ static async computeFromTagAndApp(tag, app) {
12
21
  const siloedTag = await computeSiloedPrivateLogFirstField(app, tag.value);
13
22
  return new SiloedTag(siloedTag);
14
23
  }
package/dest/logs/tag.js CHANGED
@@ -10,7 +10,7 @@ import { schemas } from '../schemas/schemas.js';
10
10
  }
11
11
  static async compute(preTag) {
12
12
  const tag = await poseidon2Hash([
13
- preTag.secret.value,
13
+ preTag.extendedSecret.secret,
14
14
  preTag.index
15
15
  ]);
16
16
  return new Tag(tag);
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ import { type ExtendedDirectionalAppTaggingSecret } from './extended_directional_app_tagging_secret.js';
3
+ /**
4
+ * Represents a range of tagging indexes for a given extended directional app tagging secret. Used to track the lowest
5
+ * and highest indexes used in a transaction for a given (sender, recipient, app/contract) tuple.
6
+ */
7
+ export type TaggingIndexRange = {
8
+ extendedSecret: ExtendedDirectionalAppTaggingSecret;
9
+ lowestIndex: number;
10
+ highestIndex: number;
11
+ };
12
+ export declare const TaggingIndexRangeSchema: z.ZodObject<{
13
+ extendedSecret: z.ZodObject<{
14
+ secret: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
15
+ app: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ secret: import("@aztec/foundation/schemas").Fr;
18
+ app: import("../aztec-address/index.js").AztecAddress;
19
+ }, {
20
+ secret: string;
21
+ app?: any;
22
+ }>;
23
+ lowestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
24
+ highestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ extendedSecret: {
27
+ secret: import("@aztec/foundation/schemas").Fr;
28
+ app: import("../aztec-address/index.js").AztecAddress;
29
+ };
30
+ lowestIndex: number;
31
+ highestIndex: number;
32
+ }, {
33
+ extendedSecret: {
34
+ secret: string;
35
+ app?: any;
36
+ };
37
+ lowestIndex: string | number | bigint;
38
+ highestIndex: string | number | bigint;
39
+ }>;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnZ2luZ19pbmRleF9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdGFnZ2luZ19pbmRleF9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxLQUFLLG1DQUFtQyxFQUV6QyxNQUFNLDhDQUE4QyxDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixjQUFjLEVBQUUsbUNBQW1DLENBQUM7SUFDcEQsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFJbEMsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagging_index_range.d.ts","sourceRoot":"","sources":["../../src/logs/tagging_index_range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,8CAA8C,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,mCAAmC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { schemas } from '@aztec/foundation/schemas';
2
+ import { z } from 'zod';
3
+ import { ExtendedDirectionalAppTaggingSecretSchema } from './extended_directional_app_tagging_secret.js';
4
+ export const TaggingIndexRangeSchema = z.object({
5
+ extendedSecret: ExtendedDirectionalAppTaggingSecretSchema,
6
+ lowestIndex: schemas.Integer,
7
+ highestIndex: schemas.Integer
8
+ });
@@ -44,6 +44,8 @@ export declare class TxScopedL2Log {
44
44
  }>;
45
45
  toBuffer(): Buffer<ArrayBuffer>;
46
46
  static fromBuffer(buffer: Buffer): TxScopedL2Log;
47
+ static getBlockNumberFromBuffer(buffer: Buffer): BlockNumber;
48
+ static random(): TxScopedL2Log;
47
49
  equals(other: TxScopedL2Log): boolean;
48
50
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc2NvcGVkX2wyX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdHhfc2NvcGVkX2wyX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxxQkFBYSxhQUFhO0lBS2YsTUFBTSxFQUFFLE1BQU07SUFJZCxXQUFXLEVBQUUsV0FBVztJQUl4QixjQUFjLEVBQUUsTUFBTTtJQUl0QixPQUFPLEVBQUUsRUFBRSxFQUFFO0lBSWIsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQU1oQixjQUFjLEVBQUUsRUFBRTtJQTFCM0IsWUFJUyxNQUFNLEVBQUUsTUFBTSxFQUlkLFdBQVcsRUFBRSxXQUFXLEVBSXhCLGNBQWMsRUFBRSxNQUFNLEVBSXRCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFJYixVQUFVLEVBQUUsRUFBRSxFQUFFLEVBTWhCLGNBQWMsRUFBRSxFQUFFLEVBQ3ZCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWNoQjtJQUVELFFBQVEsd0JBU1A7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGlCQVUvQjtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsYUFBYSxXQVcxQjtDQUNGIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc2NvcGVkX2wyX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdHhfc2NvcGVkX2wyX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxxQkFBYSxhQUFhO0lBS2YsTUFBTSxFQUFFLE1BQU07SUFJZCxXQUFXLEVBQUUsV0FBVztJQUl4QixjQUFjLEVBQUUsTUFBTTtJQUl0QixPQUFPLEVBQUUsRUFBRSxFQUFFO0lBSWIsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQU1oQixjQUFjLEVBQUUsRUFBRTtJQTFCM0IsWUFJUyxNQUFNLEVBQUUsTUFBTSxFQUlkLFdBQVcsRUFBRSxXQUFXLEVBSXhCLGNBQWMsRUFBRSxNQUFNLEVBSXRCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFJYixVQUFVLEVBQUUsRUFBRSxFQUFFLEVBTWhCLGNBQWMsRUFBRSxFQUFFLEVBQ3ZCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWNoQjtJQUVELFFBQVEsd0JBU1A7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGlCQVUvQjtJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxlQUU3QztJQUVELE1BQU0sQ0FBQyxNQUFNLGtCQVNaO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLFdBVzFCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"tx_scoped_l2_log.d.ts","sourceRoot":"","sources":["../../src/logs/tx_scoped_l2_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AASpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,aAAa;IAKf,MAAM,EAAE,MAAM;IAId,WAAW,EAAE,WAAW;IAIxB,cAAc,EAAE,MAAM;IAItB,OAAO,EAAE,EAAE,EAAE;IAIb,UAAU,EAAE,EAAE,EAAE;IAMhB,cAAc,EAAE,EAAE;IA1B3B,YAIS,MAAM,EAAE,MAAM,EAId,WAAW,EAAE,WAAW,EAIxB,cAAc,EAAE,MAAM,EAItB,OAAO,EAAE,EAAE,EAAE,EAIb,UAAU,EAAE,EAAE,EAAE,EAMhB,cAAc,EAAE,EAAE,EACvB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAchB;IAED,QAAQ,wBASP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,iBAU/B;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,WAW1B;CACF"}
1
+ {"version":3,"file":"tx_scoped_l2_log.d.ts","sourceRoot":"","sources":["../../src/logs/tx_scoped_l2_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AASpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,aAAa;IAKf,MAAM,EAAE,MAAM;IAId,WAAW,EAAE,WAAW;IAIxB,cAAc,EAAE,MAAM;IAItB,OAAO,EAAE,EAAE,EAAE;IAIb,UAAU,EAAE,EAAE,EAAE;IAMhB,cAAc,EAAE,EAAE;IA1B3B,YAIS,MAAM,EAAE,MAAM,EAId,WAAW,EAAE,WAAW,EAIxB,cAAc,EAAE,MAAM,EAItB,OAAO,EAAE,EAAE,EAAE,EAIb,UAAU,EAAE,EAAE,EAAE,EAMhB,cAAc,EAAE,EAAE,EACvB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAchB;IAED,QAAQ,wBASP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,iBAU/B;IAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,eAE7C;IAED,MAAM,CAAC,MAAM,kBASZ;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,WAW1B;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
2
+ import { times } from '@aztec/foundation/collection';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { schemas as foundationSchemas } from '@aztec/foundation/schemas';
4
5
  import { BufferReader, bigintToUInt64BE, numToUInt32BE, serializeArrayOfBufferableToVector } from '@aztec/foundation/serialize';
@@ -64,6 +65,12 @@ export class TxScopedL2Log {
64
65
  const firstNullifier = reader.readObject(Fr);
65
66
  return new TxScopedL2Log(txHash, blockNumber, blockTimestamp, logData, noteHashes, firstNullifier);
66
67
  }
68
+ static getBlockNumberFromBuffer(buffer) {
69
+ return BlockNumber(buffer.readUint32BE(Fr.SIZE_IN_BYTES));
70
+ }
71
+ static random() {
72
+ return new TxScopedL2Log(TxHash.fromField(Fr.random()), BlockNumber(Math.floor(Math.random() * 100000) + 1), BigInt(Math.floor(Date.now() / 1000)), times(3, Fr.random), times(3, Fr.random), Fr.random());
73
+ }
67
74
  equals(other) {
68
75
  return this.txHash.equals(other.txHash) && this.blockNumber === other.blockNumber && this.blockTimestamp === other.blockTimestamp && this.logData.length === other.logData.length && this.logData.every((f, i)=>f.equals(other.logData[i])) && this.noteHashes.length === other.noteHashes.length && this.noteHashes.every((h, i)=>h.equals(other.noteHashes[i])) && this.firstNullifier.equals(other.firstNullifier);
69
76
  }
@@ -3,6 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { BufferReader } from '@aztec/foundation/serialize';
4
4
  import { SiblingPath } from '@aztec/foundation/trees';
5
5
  import type { AztecAddress } from '../aztec-address/index.js';
6
+ import type { BlockParameter } from '../block/block_parameter.js';
6
7
  import type { AztecNode } from '../interfaces/aztec-node.js';
7
8
  import { L1Actor } from './l1_actor.js';
8
9
  import { L2Actor } from './l2_actor.js';
@@ -44,5 +45,5 @@ export declare class L1ToL2Message {
44
45
  static empty(): L1ToL2Message;
45
46
  static random(): Promise<L1ToL2Message>;
46
47
  }
47
- export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMV90b19sMl9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7R0FFRztBQUNILHFCQUFhLGFBQWE7SUFFdEIsdUNBQXVDO2FBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQzthQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7YUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7YUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO2FBQ2hDLEtBQUssRUFBRSxFQUFFO0lBVjNCO0lBQ0UsdUNBQXVDO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7SUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO0lBQ2hDLEtBQUssRUFBRSxFQUFFLEVBQ3ZCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBUTlEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUc3QztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUU1QjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUM7Q0FDRjtBQUdELHdCQUFzQixtQ0FBbUMsQ0FDdkQsSUFBSSxFQUFFLFNBQVMsRUFDZixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsRUFBRSxFQUNmLE1BQU0sRUFBRSxFQUFFLEdBQ1QsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQWdCakUifQ==
48
+ export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr, referenceBlock?: BlockParameter): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMV90b19sMl9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7R0FFRztBQUNILHFCQUFhLGFBQWE7SUFFdEIsdUNBQXVDO2FBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQzthQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7YUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7YUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO2FBQ2hDLEtBQUssRUFBRSxFQUFFO0lBVjNCO0lBQ0UsdUNBQXVDO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7SUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO0lBQ2hDLEtBQUssRUFBRSxFQUFFLEVBQ3ZCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBUTlEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUc3QztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUU1QjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUM7Q0FDRjtBQUdELHdCQUFzQixtQ0FBbUMsQ0FDdkQsSUFBSSxFQUFFLFNBQVMsRUFDZixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsRUFBRSxFQUNmLE1BQU0sRUFBRSxFQUFFLEVBQ1YsY0FBYyxHQUFFLGNBQXlCLEdBQ3hDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FpQmpFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAEtB,uCAAuC;aACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;aAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;aACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;aACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;aAChC,KAAK,EAAE,EAAE;IAV3B;IACE,uCAAuC;IACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;IAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;IACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;IACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;IAChC,KAAK,EAAE,EAAE,EACvB;IAEJ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAQ9D;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAG7C;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAE5C;CACF;AAGD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAgBjE"}
1
+ {"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAEtB,uCAAuC;aACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;aAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;aACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;aACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;aAChC,KAAK,EAAE,EAAE;IAV3B;IACE,uCAAuC;IACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;IAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;IACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;IACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;IAChC,KAAK,EAAE,EAAE,EACvB;IAEJ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAQ9D;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAG7C;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAE5C;CACF;AAGD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,cAAc,GAAE,cAAyB,GACxC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAiBjE"}
@@ -63,21 +63,19 @@ import { L2Actor } from './l2_actor.js';
63
63
  }
64
64
  }
65
65
  // This functionality is not on the node because we do not want to pass the node the secret, and give the node the ability to derive a valid nullifer for an L1 to L2 message.
66
- export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret) {
67
- const response = await node.getL1ToL2MessageMembershipWitness('latest', messageHash);
68
- if (!response) {
69
- throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
70
- }
71
- const [messageIndex, siblingPath] = response;
66
+ export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret, referenceBlock = 'latest') {
72
67
  const messageNullifier = await computeL1ToL2MessageNullifier(contractAddress, messageHash, secret);
73
- const [nullifierIndex] = await node.findLeavesIndexes('latest', MerkleTreeId.NULLIFIER_TREE, [
74
- messageNullifier
68
+ const [l1ToL2Response, nullifierResponse] = await Promise.all([
69
+ node.getL1ToL2MessageMembershipWitness(referenceBlock, messageHash),
70
+ node.findLeavesIndexes(referenceBlock, MerkleTreeId.NULLIFIER_TREE, [
71
+ messageNullifier
72
+ ])
75
73
  ]);
76
- if (nullifierIndex !== undefined) {
74
+ if (!l1ToL2Response) {
75
+ throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
76
+ }
77
+ if (nullifierResponse[0] !== undefined) {
77
78
  throw new Error(`No non-nullified L1 to L2 message found for message hash ${messageHash.toString()}`);
78
79
  }
79
- return [
80
- messageIndex,
81
- siblingPath
82
- ];
80
+ return l1ToL2Response;
83
81
  }