@aztec/stdlib 0.86.0-starknet.1 → 0.87.0

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 (517) hide show
  1. package/dest/abi/abi.d.ts +3 -5
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/buffer.d.ts +0 -2
  4. package/dest/abi/buffer.d.ts.map +1 -1
  5. package/dest/abi/contract_artifact.d.ts +0 -2
  6. package/dest/abi/contract_artifact.d.ts.map +1 -1
  7. package/dest/abi/contract_artifact.js +3 -16
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +1 -1
  10. package/dest/abi/encoder.d.ts.map +1 -1
  11. package/dest/abi/encoder.js +1 -1
  12. package/dest/abi/event_selector.d.ts +0 -2
  13. package/dest/abi/event_selector.d.ts.map +1 -1
  14. package/dest/abi/function_selector.d.ts +0 -2
  15. package/dest/abi/function_selector.d.ts.map +1 -1
  16. package/dest/abi/note_selector.d.ts +0 -2
  17. package/dest/abi/note_selector.d.ts.map +1 -1
  18. package/dest/abi/selector.d.ts +0 -3
  19. package/dest/abi/selector.d.ts.map +1 -1
  20. package/dest/abi/utils.d.ts +0 -2
  21. package/dest/abi/utils.d.ts.map +1 -1
  22. package/dest/auth_witness/auth_witness.d.ts +1 -3
  23. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  24. package/dest/avm/avm.d.ts +39 -40
  25. package/dest/avm/avm.d.ts.map +1 -1
  26. package/dest/avm/avm.js +5 -5
  27. package/dest/avm/avm_accumulated_data.d.ts +4 -4
  28. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  29. package/dest/avm/avm_accumulated_data.js +18 -2
  30. package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
  31. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  32. package/dest/avm/avm_circuit_public_inputs.js +26 -1
  33. package/dest/avm/avm_proving_request.d.ts +15 -17
  34. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  35. package/dest/avm/contract_storage_read.d.ts +1 -3
  36. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  37. package/dest/avm/contract_storage_update_request.d.ts +1 -3
  38. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  39. package/dest/avm/message_pack.d.ts +0 -2
  40. package/dest/avm/message_pack.d.ts.map +1 -1
  41. package/dest/avm/message_pack.js +7 -1
  42. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  43. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  44. package/dest/avm/public_data_hint.d.ts +1 -3
  45. package/dest/avm/public_data_hint.d.ts.map +1 -1
  46. package/dest/avm/public_data_read.d.ts +1 -3
  47. package/dest/avm/public_data_read.d.ts.map +1 -1
  48. package/dest/avm/public_data_update_request.d.ts +1 -4
  49. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  50. package/dest/avm/public_data_write.d.ts +4 -3
  51. package/dest/avm/public_data_write.d.ts.map +1 -1
  52. package/dest/avm/public_data_write.js +19 -1
  53. package/dest/avm/public_inner_call_request.d.ts +1 -4
  54. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  55. package/dest/avm/public_inner_call_request.js +1 -1
  56. package/dest/avm/revert_code.d.ts +0 -3
  57. package/dest/avm/revert_code.d.ts.map +1 -1
  58. package/dest/aztec-address/index.d.ts +1 -4
  59. package/dest/aztec-address/index.d.ts.map +1 -1
  60. package/dest/block/block_hash.d.ts +1 -3
  61. package/dest/block/block_hash.d.ts.map +1 -1
  62. package/dest/block/body.d.ts +1 -4
  63. package/dest/block/body.d.ts.map +1 -1
  64. package/dest/block/body.js +5 -11
  65. package/dest/block/l2_block.d.ts +1 -3
  66. package/dest/block/l2_block.d.ts.map +1 -1
  67. package/dest/block/l2_block.js +1 -1
  68. package/dest/block/l2_block_code_to_purge.d.ts +0 -2
  69. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  70. package/dest/block/l2_block_source.d.ts +0 -1
  71. package/dest/block/l2_block_source.d.ts.map +1 -1
  72. package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
  73. package/dest/config/chain-config.d.ts.map +1 -0
  74. package/dest/config/index.d.ts +2 -1
  75. package/dest/config/index.d.ts.map +1 -1
  76. package/dest/config/index.js +2 -1
  77. package/dest/config/node-rpc-config.d.ts +7 -0
  78. package/dest/config/node-rpc-config.d.ts.map +1 -0
  79. package/dest/config/node-rpc-config.js +8 -0
  80. package/dest/contract/artifact_hash.d.ts +1 -3
  81. package/dest/contract/artifact_hash.d.ts.map +1 -1
  82. package/dest/contract/artifact_hash.js +3 -2
  83. package/dest/contract/complete_address.d.ts +0 -2
  84. package/dest/contract/complete_address.d.ts.map +1 -1
  85. package/dest/contract/contract_class_id.d.ts +0 -2
  86. package/dest/contract/contract_class_id.d.ts.map +1 -1
  87. package/dest/contract/contract_instance.d.ts +1 -3
  88. package/dest/contract/contract_instance.d.ts.map +1 -1
  89. package/dest/contract/contract_instance_update.d.ts +1 -3
  90. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  91. package/dest/contract/interfaces/contract_class.d.ts +17 -19
  92. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  93. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  94. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  95. package/dest/contract/private_function.d.ts +0 -2
  96. package/dest/contract/private_function.d.ts.map +1 -1
  97. package/dest/database-version/version_manager.d.ts +0 -4
  98. package/dest/database-version/version_manager.d.ts.map +1 -1
  99. package/dest/errors/proving_error.d.ts.map +1 -1
  100. package/dest/errors/simulation_error.d.ts.map +1 -1
  101. package/dest/file-store/factory.js +1 -1
  102. package/dest/file-store/gcs.d.ts +0 -2
  103. package/dest/file-store/gcs.d.ts.map +1 -1
  104. package/dest/file-store/http.d.ts +1 -2
  105. package/dest/file-store/http.d.ts.map +1 -1
  106. package/dest/file-store/http.js +32 -16
  107. package/dest/file-store/interface.d.ts +0 -2
  108. package/dest/file-store/interface.d.ts.map +1 -1
  109. package/dest/file-store/local.d.ts +0 -2
  110. package/dest/file-store/local.d.ts.map +1 -1
  111. package/dest/gas/gas.d.ts +1 -4
  112. package/dest/gas/gas.d.ts.map +1 -1
  113. package/dest/gas/gas_fees.d.ts +1 -4
  114. package/dest/gas/gas_fees.d.ts.map +1 -1
  115. package/dest/gas/gas_settings.d.ts +1 -3
  116. package/dest/gas/gas_settings.d.ts.map +1 -1
  117. package/dest/interfaces/aztec-node-admin.d.ts +10 -0
  118. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  119. package/dest/interfaces/aztec-node-admin.js +4 -1
  120. package/dest/interfaces/aztec-node.d.ts +1 -2
  121. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node.js +7 -2
  123. package/dest/interfaces/configs.d.ts +5 -0
  124. package/dest/interfaces/configs.d.ts.map +1 -1
  125. package/dest/interfaces/configs.js +1 -0
  126. package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
  127. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  128. package/dest/interfaces/p2p.d.ts +2 -0
  129. package/dest/interfaces/p2p.d.ts.map +1 -1
  130. package/dest/interfaces/p2p.js +1 -0
  131. package/dest/interfaces/private_kernel_prover.d.ts +0 -2
  132. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  133. package/dest/interfaces/prover-client.d.ts.map +1 -1
  134. package/dest/interfaces/proving-job.d.ts +15 -17
  135. package/dest/interfaces/proving-job.d.ts.map +1 -1
  136. package/dest/interfaces/pxe.d.ts +2 -3
  137. package/dest/interfaces/pxe.d.ts.map +1 -1
  138. package/dest/interfaces/pxe.js +2 -2
  139. package/dest/interfaces/service.d.ts +2 -3
  140. package/dest/interfaces/service.d.ts.map +1 -1
  141. package/dest/interfaces/world_state.d.ts +4 -1
  142. package/dest/interfaces/world_state.d.ts.map +1 -1
  143. package/dest/kernel/combined_constant_data.d.ts +1 -3
  144. package/dest/kernel/combined_constant_data.d.ts.map +1 -1
  145. package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
  146. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  147. package/dest/kernel/hints/key_validation_request.d.ts +1 -3
  148. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  149. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
  150. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  151. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
  152. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  153. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
  154. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  155. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
  156. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  157. package/dest/kernel/hints/read_request.d.ts +0 -2
  158. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  159. package/dest/kernel/hints/read_request_hints.d.ts +4 -6
  160. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  161. package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
  162. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
  163. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
  164. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  165. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
  166. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
  167. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
  168. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  169. package/dest/kernel/log_hash.d.ts +27 -9
  170. package/dest/kernel/log_hash.d.ts.map +1 -1
  171. package/dest/kernel/log_hash.js +72 -13
  172. package/dest/kernel/note_hash.d.ts +0 -2
  173. package/dest/kernel/note_hash.d.ts.map +1 -1
  174. package/dest/kernel/nullifier.d.ts +0 -2
  175. package/dest/kernel/nullifier.d.ts.map +1 -1
  176. package/dest/kernel/private_accumulated_data.d.ts +4 -6
  177. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  178. package/dest/kernel/private_accumulated_data.js +3 -3
  179. package/dest/kernel/private_call_data.d.ts +0 -2
  180. package/dest/kernel/private_call_data.d.ts.map +1 -1
  181. package/dest/kernel/private_call_request.d.ts +1 -3
  182. package/dest/kernel/private_call_request.d.ts.map +1 -1
  183. package/dest/kernel/private_call_request.js +1 -1
  184. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
  185. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  186. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  187. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
  188. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  189. package/dest/kernel/private_kernel_data.d.ts +1 -3
  190. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  191. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
  192. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  193. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
  194. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  195. package/dest/kernel/private_kernel_prover_output.d.ts +5 -7
  196. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  197. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
  198. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  199. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
  200. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  201. package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
  202. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  203. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
  204. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  205. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -8
  206. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  207. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -2
  208. package/dest/kernel/private_log_data.d.ts +1 -4
  209. package/dest/kernel/private_log_data.d.ts.map +1 -1
  210. package/dest/kernel/private_log_data.js +4 -2
  211. package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
  212. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  213. package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
  214. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
  215. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  216. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
  217. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  218. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
  219. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  220. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
  221. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  222. package/dest/kernel/private_validation_requests.d.ts +1 -4
  223. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  224. package/dest/kernel/private_validation_requests.js +1 -1
  225. package/dest/kernel/public_call_request.d.ts +2 -5
  226. package/dest/kernel/public_call_request.d.ts.map +1 -1
  227. package/dest/kernel/utils/optional_number.d.ts +1 -3
  228. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  229. package/dest/keys/public_keys.d.ts +0 -2
  230. package/dest/keys/public_keys.d.ts.map +1 -1
  231. package/dest/keys/public_keys.js +0 -1
  232. package/dest/logs/contract_class_log.d.ts +53 -12
  233. package/dest/logs/contract_class_log.d.ts.map +1 -1
  234. package/dest/logs/contract_class_log.js +129 -66
  235. package/dest/logs/extended_contract_class_log.d.ts +0 -2
  236. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  237. package/dest/logs/extended_public_log.d.ts +0 -2
  238. package/dest/logs/extended_public_log.d.ts.map +1 -1
  239. package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
  240. package/dest/logs/log_id.d.ts +0 -2
  241. package/dest/logs/log_id.d.ts.map +1 -1
  242. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  243. package/dest/logs/log_with_tx_data.js +8 -3
  244. package/dest/logs/private_log.d.ts +13 -7
  245. package/dest/logs/private_log.d.ts.map +1 -1
  246. package/dest/logs/private_log.js +44 -30
  247. package/dest/logs/public_log.d.ts +9 -9
  248. package/dest/logs/public_log.d.ts.map +1 -1
  249. package/dest/logs/public_log.js +45 -32
  250. package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
  251. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  252. package/dest/logs/tx_scoped_l2_log.js +1 -2
  253. package/dest/messaging/inbox_leaf.d.ts +5 -2
  254. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  255. package/dest/messaging/inbox_leaf.js +11 -0
  256. package/dest/messaging/l1_actor.d.ts +0 -2
  257. package/dest/messaging/l1_actor.d.ts.map +1 -1
  258. package/dest/messaging/l1_to_l2_message.d.ts +0 -2
  259. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  260. package/dest/messaging/l2_actor.d.ts +0 -2
  261. package/dest/messaging/l2_actor.d.ts.map +1 -1
  262. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  263. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  264. package/dest/note/extended_note.d.ts +3 -5
  265. package/dest/note/extended_note.d.ts.map +1 -1
  266. package/dest/note/note.d.ts +5 -13
  267. package/dest/note/note.d.ts.map +1 -1
  268. package/dest/p2p/block_attestation.d.ts +1 -3
  269. package/dest/p2p/block_attestation.d.ts.map +1 -1
  270. package/dest/p2p/block_attestation.js +1 -1
  271. package/dest/p2p/block_proposal.d.ts +12 -6
  272. package/dest/p2p/block_proposal.d.ts.map +1 -1
  273. package/dest/p2p/block_proposal.js +25 -9
  274. package/dest/p2p/consensus_payload.d.ts +2 -3
  275. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  276. package/dest/p2p/consensus_payload.js +3 -0
  277. package/dest/p2p/gossipable.d.ts +14 -4
  278. package/dest/p2p/gossipable.d.ts.map +1 -1
  279. package/dest/p2p/gossipable.js +43 -0
  280. package/dest/p2p/signature_utils.d.ts +0 -2
  281. package/dest/p2p/signature_utils.d.ts.map +1 -1
  282. package/dest/p2p/topic_type.d.ts.map +1 -1
  283. package/dest/p2p/topic_type.js +5 -0
  284. package/dest/parity/base_parity_inputs.d.ts +2 -4
  285. package/dest/parity/base_parity_inputs.d.ts.map +1 -1
  286. package/dest/parity/parity_public_inputs.d.ts +2 -4
  287. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  288. package/dest/parity/root_parity_input.d.ts +4 -6
  289. package/dest/parity/root_parity_input.d.ts.map +1 -1
  290. package/dest/parity/root_parity_inputs.d.ts +2 -4
  291. package/dest/parity/root_parity_inputs.d.ts.map +1 -1
  292. package/dest/proofs/client_ivc_proof.d.ts +2 -4
  293. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  294. package/dest/proofs/proof.d.ts +1 -3
  295. package/dest/proofs/proof.d.ts.map +1 -1
  296. package/dest/proofs/recursive_proof.d.ts +4 -6
  297. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  298. package/dest/rollup/avm_proof_data.d.ts +1 -3
  299. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  300. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
  301. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  302. package/dest/rollup/base_rollup_hints.d.ts +9 -11
  303. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  304. package/dest/rollup/base_rollup_hints.js +5 -5
  305. package/dest/rollup/block_merge_rollup.d.ts +2 -4
  306. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  307. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +3 -5
  308. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/block_root_rollup.d.ts +8 -10
  310. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  311. package/dest/rollup/constant_rollup_data.d.ts +1 -3
  312. package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
  313. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
  314. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  315. package/dest/rollup/merge_rollup.d.ts +2 -4
  316. package/dest/rollup/merge_rollup.d.ts.map +1 -1
  317. package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
  318. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  319. package/dest/rollup/previous_rollup_data.d.ts +0 -2
  320. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  321. package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
  322. package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
  323. package/dest/rollup/private_tube_data.d.ts +1 -3
  324. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  325. package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
  326. package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
  327. package/dest/rollup/public_tube_data.d.ts +1 -3
  328. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  329. package/dest/rollup/root_rollup.d.ts +4 -6
  330. package/dest/rollup/root_rollup.d.ts.map +1 -1
  331. package/dest/rollup/state_diff_hints.d.ts +0 -2
  332. package/dest/rollup/state_diff_hints.d.ts.map +1 -1
  333. package/dest/rollup/tube_inputs.d.ts +2 -4
  334. package/dest/rollup/tube_inputs.d.ts.map +1 -1
  335. package/dest/schemas/schemas.d.ts +4 -6
  336. package/dest/schemas/schemas.d.ts.map +1 -1
  337. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  338. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  339. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
  340. package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
  341. package/dest/tests/factories.d.ts +0 -2
  342. package/dest/tests/factories.d.ts.map +1 -1
  343. package/dest/tests/factories.js +17 -14
  344. package/dest/tests/mocks.d.ts +1 -0
  345. package/dest/tests/mocks.d.ts.map +1 -1
  346. package/dest/tests/mocks.js +1 -1
  347. package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
  348. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  349. package/dest/trees/nullifier_leaf.d.ts +0 -2
  350. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  351. package/dest/trees/nullifier_membership_witness.d.ts +4 -6
  352. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  353. package/dest/trees/protocol_contract_leaf.d.ts +0 -2
  354. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  355. package/dest/trees/public_data_leaf.d.ts +1 -3
  356. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  357. package/dest/trees/public_data_witness.d.ts +4 -6
  358. package/dest/trees/public_data_witness.d.ts.map +1 -1
  359. package/dest/tx/block_header.d.ts +1 -4
  360. package/dest/tx/block_header.d.ts.map +1 -1
  361. package/dest/tx/call_context.d.ts +1 -4
  362. package/dest/tx/call_context.d.ts.map +1 -1
  363. package/dest/tx/capsule.d.ts +1 -3
  364. package/dest/tx/capsule.d.ts.map +1 -1
  365. package/dest/tx/content_commitment.d.ts +10 -12
  366. package/dest/tx/content_commitment.d.ts.map +1 -1
  367. package/dest/tx/function_data.d.ts +0 -2
  368. package/dest/tx/function_data.d.ts.map +1 -1
  369. package/dest/tx/global_variables.d.ts +1 -4
  370. package/dest/tx/global_variables.d.ts.map +1 -1
  371. package/dest/tx/hashed_values.d.ts +1 -3
  372. package/dest/tx/hashed_values.d.ts.map +1 -1
  373. package/dest/tx/max_block_number.d.ts +1 -3
  374. package/dest/tx/max_block_number.d.ts.map +1 -1
  375. package/dest/tx/partial_state_reference.d.ts +1 -3
  376. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  377. package/dest/tx/private_execution_result.d.ts +8 -8
  378. package/dest/tx/private_execution_result.d.ts.map +1 -1
  379. package/dest/tx/private_execution_result.js +3 -2
  380. package/dest/tx/profiling.d.ts +8 -0
  381. package/dest/tx/profiling.d.ts.map +1 -1
  382. package/dest/tx/profiling.js +31 -0
  383. package/dest/tx/proposed_block_header.d.ts +1 -4
  384. package/dest/tx/proposed_block_header.d.ts.map +1 -1
  385. package/dest/tx/proposed_block_header.js +2 -1
  386. package/dest/tx/proven_tx.d.ts.map +1 -1
  387. package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
  388. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  389. package/dest/tx/simulated_tx.d.ts.map +1 -1
  390. package/dest/tx/state_reference.d.ts +1 -4
  391. package/dest/tx/state_reference.d.ts.map +1 -1
  392. package/dest/tx/tree_snapshots.d.ts +1 -4
  393. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  394. package/dest/tx/tx.d.ts +6 -11
  395. package/dest/tx/tx.d.ts.map +1 -1
  396. package/dest/tx/tx.js +18 -15
  397. package/dest/tx/tx_constant_data.d.ts +1 -3
  398. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  399. package/dest/tx/tx_context.d.ts +1 -3
  400. package/dest/tx/tx_context.d.ts.map +1 -1
  401. package/dest/tx/tx_effect.d.ts +1 -4
  402. package/dest/tx/tx_effect.d.ts.map +1 -1
  403. package/dest/tx/tx_effect.js +33 -63
  404. package/dest/tx/tx_execution_request.d.ts +13 -6
  405. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  406. package/dest/tx/tx_execution_request.js +14 -7
  407. package/dest/tx/tx_hash.d.ts +2 -4
  408. package/dest/tx/tx_hash.d.ts.map +1 -1
  409. package/dest/tx/tx_receipt.d.ts.map +1 -1
  410. package/dest/tx/tx_receipt.js +1 -1
  411. package/dest/tx/tx_request.d.ts +7 -5
  412. package/dest/tx/tx_request.d.ts.map +1 -1
  413. package/dest/tx/tx_request.js +8 -5
  414. package/dest/tx/validator/error_texts.d.ts +1 -1
  415. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  416. package/dest/tx/validator/error_texts.js +1 -1
  417. package/dest/types/shared.d.ts +1 -3
  418. package/dest/types/shared.d.ts.map +1 -1
  419. package/dest/update-checker/index.d.ts +2 -0
  420. package/dest/update-checker/index.d.ts.map +1 -0
  421. package/dest/update-checker/index.js +1 -0
  422. package/dest/update-checker/update-checker.d.ts +48 -0
  423. package/dest/update-checker/update-checker.d.ts.map +1 -0
  424. package/dest/update-checker/update-checker.js +121 -0
  425. package/dest/versioning/versioning.d.ts +1 -1
  426. package/dest/versioning/versioning.d.ts.map +1 -1
  427. package/dest/vks/verification_key.d.ts +7 -9
  428. package/dest/vks/verification_key.d.ts.map +1 -1
  429. package/dest/vks/vk_witness_data.d.ts +1 -3
  430. package/dest/vks/vk_witness_data.d.ts.map +1 -1
  431. package/package.json +16 -13
  432. package/src/abi/abi.ts +2 -2
  433. package/src/abi/contract_artifact.ts +3 -17
  434. package/src/abi/decoder.ts +10 -3
  435. package/src/abi/encoder.ts +5 -2
  436. package/src/avm/avm.ts +13 -7
  437. package/src/avm/avm_accumulated_data.ts +30 -2
  438. package/src/avm/avm_circuit_public_inputs.ts +26 -0
  439. package/src/avm/message_pack.ts +7 -1
  440. package/src/avm/public_data_write.ts +21 -1
  441. package/src/avm/public_inner_call_request.ts +1 -1
  442. package/src/avm/revert_code.ts +5 -5
  443. package/src/block/body.ts +5 -11
  444. package/src/block/l2_block.ts +1 -1
  445. package/src/config/index.ts +2 -1
  446. package/src/config/node-rpc-config.ts +14 -0
  447. package/src/contract/artifact_hash.ts +5 -3
  448. package/src/contract/private_function.ts +4 -2
  449. package/src/errors/proving_error.ts +5 -1
  450. package/src/file-store/factory.ts +1 -1
  451. package/src/file-store/http.ts +27 -18
  452. package/src/gas/gas.ts +4 -1
  453. package/src/interfaces/aztec-node-admin.ts +16 -0
  454. package/src/interfaces/aztec-node.ts +4 -2
  455. package/src/interfaces/configs.ts +3 -0
  456. package/src/interfaces/p2p.ts +4 -0
  457. package/src/interfaces/prover-client.ts +4 -1
  458. package/src/interfaces/pxe.ts +3 -4
  459. package/src/interfaces/service.ts +2 -3
  460. package/src/interfaces/world_state.ts +6 -1
  461. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
  462. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
  463. package/src/kernel/hints/read_request.ts +4 -1
  464. package/src/kernel/hints/read_request_hints.ts +12 -3
  465. package/src/kernel/hints/transient_data_index_hint.ts +4 -1
  466. package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
  467. package/src/kernel/log_hash.ts +86 -14
  468. package/src/kernel/note_hash.ts +8 -2
  469. package/src/kernel/nullifier.ts +9 -2
  470. package/src/kernel/private_accumulated_data.ts +4 -4
  471. package/src/kernel/private_call_request.ts +1 -1
  472. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  473. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
  474. package/src/kernel/private_log_data.ts +13 -4
  475. package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
  476. package/src/kernel/private_validation_requests.ts +1 -1
  477. package/src/kernel/public_call_request.ts +4 -1
  478. package/src/keys/public_keys.ts +1 -1
  479. package/src/logs/contract_class_log.ts +156 -57
  480. package/src/logs/indexed_tagging_secret.ts +4 -1
  481. package/src/logs/log_with_tx_data.ts +7 -2
  482. package/src/logs/private_log.ts +52 -30
  483. package/src/logs/public_log.ts +62 -38
  484. package/src/logs/tx_scoped_l2_log.ts +1 -2
  485. package/src/messaging/inbox_leaf.ts +10 -0
  486. package/src/messaging/l2_to_l1_message.ts +9 -2
  487. package/src/p2p/block_attestation.ts +1 -1
  488. package/src/p2p/block_proposal.ts +36 -5
  489. package/src/p2p/consensus_payload.ts +4 -0
  490. package/src/p2p/gossipable.ts +44 -2
  491. package/src/p2p/topic_type.ts +2 -0
  492. package/src/rollup/base_rollup_hints.ts +7 -7
  493. package/src/rollup/block_root_or_block_merge_public_inputs.ts +4 -1
  494. package/src/rollup/private_base_rollup_inputs.ts +4 -1
  495. package/src/rollup/tube_inputs.ts +4 -1
  496. package/src/shared_mutable/scheduled_delay_change.ts +5 -1
  497. package/src/shared_mutable/scheduled_value_change.ts +5 -1
  498. package/src/shared_mutable/shared_mutable_values.ts +4 -1
  499. package/src/tests/factories.ts +31 -18
  500. package/src/tests/mocks.ts +2 -1
  501. package/src/tx/content_commitment.ts +6 -1
  502. package/src/tx/private_execution_result.ts +9 -5
  503. package/src/tx/profiling.ts +39 -1
  504. package/src/tx/proposed_block_header.ts +2 -1
  505. package/src/tx/tx.ts +18 -17
  506. package/src/tx/tx_effect.ts +36 -76
  507. package/src/tx/tx_execution_request.ts +11 -0
  508. package/src/tx/tx_receipt.ts +1 -1
  509. package/src/tx/tx_request.ts +12 -3
  510. package/src/tx/validator/error_texts.ts +1 -1
  511. package/src/update-checker/index.ts +1 -0
  512. package/src/update-checker/update-checker.ts +152 -0
  513. package/src/versioning/versioning.ts +1 -1
  514. package/src/vks/verification_key.ts +8 -2
  515. package/dest/config/config.d.ts.map +0 -1
  516. /package/dest/config/{config.js → chain-config.js} +0 -0
  517. /package/src/config/{config.ts → chain-config.ts} +0 -0
package/src/tx/tx.ts CHANGED
@@ -13,7 +13,7 @@ import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
13
13
  import type { PublicCallRequest } from '../kernel/index.js';
14
14
  import type { ScopedLogHash } from '../kernel/log_hash.js';
15
15
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
16
- import { ContractClassLog } from '../logs/contract_class_log.js';
16
+ import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
17
17
  import { Gossipable } from '../p2p/gossipable.js';
18
18
  import { TopicType } from '../p2p/topic_type.js';
19
19
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
@@ -44,7 +44,7 @@ export class Tx extends Gossipable {
44
44
  /**
45
45
  * Contract class logs generated by the tx.
46
46
  */
47
- public contractClassLogs: ContractClassLog[],
47
+ public contractClassLogs: ContractClassLogFields[],
48
48
  /**
49
49
  * An array of calldata for the enqueued public function calls and the teardown function call.
50
50
  */
@@ -54,7 +54,7 @@ export class Tx extends Gossipable {
54
54
  }
55
55
 
56
56
  // Gossipable method
57
- override async p2pMessageIdentifier(): Promise<Buffer32> {
57
+ override async generateP2PMessageIdentifier(): Promise<Buffer32> {
58
58
  return new Buffer32((await this.getTxHash()).toBuffer());
59
59
  }
60
60
 
@@ -107,7 +107,7 @@ export class Tx extends Gossipable {
107
107
  return new Tx(
108
108
  reader.readObject(PrivateKernelTailCircuitPublicInputs),
109
109
  reader.readObject(ClientIvcProof),
110
- reader.readVectorUint8Prefix(ContractClassLog),
110
+ reader.readVectorUint8Prefix(ContractClassLogFields),
111
111
  reader.readVectorUint8Prefix(HashedValues),
112
112
  );
113
113
  }
@@ -130,7 +130,7 @@ export class Tx extends Gossipable {
130
130
  .object({
131
131
  data: PrivateKernelTailCircuitPublicInputs.schema,
132
132
  clientIvcProof: ClientIvcProof.schema,
133
- contractClassLogs: z.array(ContractClassLog.schema),
133
+ contractClassLogs: z.array(ContractClassLogFields.schema),
134
134
  publicFunctionCalldata: z.array(HashedValues.schema),
135
135
  })
136
136
  .transform(Tx.from);
@@ -173,12 +173,15 @@ export class Tx extends Gossipable {
173
173
  */
174
174
  async filterContractClassLogs(logHashes: ScopedLogHash[], silo: boolean = false): Promise<ContractClassLog[]> {
175
175
  const contractClassLogs = [];
176
- for (const log of this.contractClassLogs) {
177
- const hashedLog = await log.hash();
178
- const logHash = logHashes.find(
179
- hash => hash.value.equals(hashedLog) && hash.contractAddress.equals(log.contractAddress),
180
- );
176
+ for (const fields of this.contractClassLogs) {
177
+ const hashedLog = await fields.hash();
178
+ const logHash = logHashes.find(hash => hash.value.equals(hashedLog));
181
179
  if (logHash) {
180
+ const log = ContractClassLog.from({
181
+ contractAddress: logHash.contractAddress,
182
+ fields,
183
+ emittedLength: logHash.logHash.length,
184
+ });
182
185
  contractClassLogs.push(silo ? await log.silo() : log);
183
186
  }
184
187
  }
@@ -287,7 +290,7 @@ export class Tx extends Gossipable {
287
290
  static clone(tx: Tx): Tx {
288
291
  const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
289
292
  const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
290
- const contractClassLogs = tx.contractClassLogs.map(x => ContractClassLog.fromBuffer(x.toBuffer()));
293
+ const contractClassLogs = tx.contractClassLogs.map(p => p.clone());
291
294
  const publicFunctionCalldata = tx.publicFunctionCalldata.map(cd => HashedValues.fromBuffer(cd.toBuffer()));
292
295
  const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogs, publicFunctionCalldata);
293
296
  if (tx.txHash) {
@@ -302,11 +305,11 @@ export class Tx extends Gossipable {
302
305
  * @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
303
306
  * @returns A random tx.
304
307
  */
305
- static async random(randomProof = false) {
308
+ static random(randomProof = false) {
306
309
  return new Tx(
307
310
  PrivateKernelTailCircuitPublicInputs.emptyWithNullifier(),
308
311
  randomProof ? ClientIvcProof.random() : ClientIvcProof.empty(),
309
- [await ContractClassLog.random()],
312
+ [ContractClassLogFields.random()],
310
313
  [HashedValues.random()],
311
314
  );
312
315
  }
@@ -321,12 +324,10 @@ export class Tx extends Gossipable {
321
324
  * The logic therefore is to drop all FunctionLogs if any constituent hash
322
325
  * does not appear in the provided hashes: it is impossible for part of a
323
326
  * function to revert.
324
- *
325
- * @param logHashes the individual log hashes we want to keep
326
- * @param out the output to put passing logs in, to keep this function abstract
327
327
  */
328
+ // TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
328
329
  public async filterRevertedLogs() {
329
- this.contractClassLogs = await this.getSplitContractClassLogs(false);
330
+ this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map(log => log.fields);
330
331
  }
331
332
 
332
333
  #combinePublicCallRequestWithCallData(request: PublicCallRequest) {
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  CONTRACT_CLASS_LOGS_PREFIX,
3
- CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
4
3
  L2_L1_MSGS_PREFIX,
5
4
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
6
5
  MAX_L2_TO_L1_MSGS_PER_TX,
@@ -11,10 +10,8 @@ import {
11
10
  NOTES_PREFIX,
12
11
  NULLIFIERS_PREFIX,
13
12
  PRIVATE_LOGS_PREFIX,
14
- PRIVATE_LOG_SIZE_IN_FIELDS,
15
13
  PUBLIC_DATA_UPDATE_REQUESTS_PREFIX,
16
14
  PUBLIC_LOGS_PREFIX,
17
- PUBLIC_LOG_SIZE_IN_FIELDS,
18
15
  REVERT_CODE_PREFIX,
19
16
  TX_FEE_PREFIX,
20
17
  } from '@aztec/constants';
@@ -243,8 +240,8 @@ export class TxEffect {
243
240
  makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random),
244
241
  makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random),
245
242
  makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random),
246
- makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, () => new PublicDataWrite(Fr.random(), Fr.random())),
247
- makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random))),
243
+ makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random),
244
+ makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
248
245
  await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
249
246
  await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
250
247
  );
@@ -372,41 +369,20 @@ export class TxEffect {
372
369
  flattened.push(...this.l2ToL1Msgs);
373
370
  }
374
371
  if (this.publicDataWrites.length) {
375
- flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length * 2));
376
- flattened.push(...this.publicDataWrites.map(w => [w.leafSlot, w.value]).flat());
372
+ flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length));
373
+ flattened.push(...this.publicDataWrites.flatMap(w => w.toBlobFields()));
377
374
  }
378
375
  if (this.privateLogs.length) {
379
- const totalLogLen = this.privateLogs.reduce(
380
- // +1 for length prefix
381
- (total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
382
- 0,
383
- );
384
- flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, totalLogLen));
385
- flattened.push(...this.privateLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
376
+ flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, this.privateLogs.length));
377
+ flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
386
378
  }
387
379
  if (this.publicLogs.length) {
388
- const totalLogLen = this.publicLogs.reduce(
389
- // +1 for length prefix
390
- (total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
391
- 0,
392
- );
393
- flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, totalLogLen));
394
- flattened.push(...this.publicLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
380
+ flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, this.publicLogs.length));
381
+ flattened.push(...this.publicLogs.flatMap(l => l.toBlobFields()));
395
382
  }
396
383
  if (this.contractClassLogs.length) {
397
- const totalLogLen = this.contractClassLogs.reduce(
398
- // +2 for length prefix and contract address
399
- (total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 2),
400
- 0,
401
- );
402
- flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, totalLogLen));
403
- flattened.push(
404
- ...this.contractClassLogs.flatMap(l => [
405
- new Fr(l.getEmittedLength()),
406
- l.contractAddress.toField(),
407
- ...l.getEmittedFields(),
408
- ]),
409
- );
384
+ flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, this.contractClassLogs.length));
385
+ flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
410
386
  }
411
387
 
412
388
  // The first value appended to each list of fields representing a tx effect is:
@@ -426,16 +402,20 @@ export class TxEffect {
426
402
  throw new Error('Invalid fields given to TxEffect.fromBlobFields(): Attempted to assign property twice.');
427
403
  }
428
404
  };
405
+
429
406
  const effect = this.empty();
430
- if (!(fields instanceof FieldReader) && !fields.length) {
407
+ const reader = FieldReader.asReader(fields);
408
+ const totalFields = reader.remainingFields();
409
+ if (!totalFields) {
431
410
  return effect;
432
411
  }
433
- const reader = FieldReader.asReader(fields);
412
+
434
413
  const firstField = reader.readField();
435
414
  if (!this.isFirstField(firstField)) {
436
415
  throw new Error('Invalid fields given to TxEffect.fromBlobFields(): First field invalid.');
437
416
  }
438
- const { length: _, revertCode } = this.decodeFirstField(firstField);
417
+
418
+ const { length: fieldsToProcess, revertCode } = this.decodeFirstField(firstField);
439
419
  effect.revertCode = RevertCode.fromField(new Fr(revertCode));
440
420
 
441
421
  effect.txHash = new TxHash(reader.readField());
@@ -444,7 +424,9 @@ export class TxEffect {
444
424
  // NB: Fr.fromBuffer hangs here if you provide a buffer less than 32 in len
445
425
  // todo: try new Fr(prefixedFee.toBuffer().subarray(3))
446
426
  effect.transactionFee = Fr.fromBuffer(Buffer.concat([Buffer.alloc(3), prefixedFee.toBuffer().subarray(3)]));
447
- while (!reader.isFinished()) {
427
+
428
+ let fieldsProcessed = totalFields - reader.remainingFields();
429
+ while (fieldsProcessed < fieldsToProcess) {
448
430
  const { type, length } = this.fromPrefix(reader.readField());
449
431
  switch (type) {
450
432
  case NOTES_PREFIX:
@@ -461,58 +443,29 @@ export class TxEffect {
461
443
  break;
462
444
  case PUBLIC_DATA_UPDATE_REQUESTS_PREFIX: {
463
445
  ensureEmpty(effect.publicDataWrites);
464
- const publicDataPairs = reader.readFieldArray(length);
465
- for (let i = 0; i < length; i += 2) {
466
- effect.publicDataWrites.push(new PublicDataWrite(publicDataPairs[i], publicDataPairs[i + 1]));
467
- }
446
+ effect.publicDataWrites = Array.from({ length }, () => PublicDataWrite.fromBlobFields(reader));
468
447
  break;
469
448
  }
470
449
  case PRIVATE_LOGS_PREFIX: {
471
450
  ensureEmpty(effect.privateLogs);
472
- const flatPrivateLogs = reader.readFieldArray(length);
473
- let i = 0;
474
- while (i < length) {
475
- const logLen = flatPrivateLogs[i++].toNumber();
476
- const logFields = flatPrivateLogs.slice(i, (i += logLen));
477
- effect.privateLogs.push(
478
- PrivateLog.fromFields(logFields.concat(new Array(PRIVATE_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
479
- );
480
- }
451
+ effect.privateLogs = Array.from({ length }, () => PrivateLog.fromBlobFields(reader));
481
452
  break;
482
453
  }
483
454
  case PUBLIC_LOGS_PREFIX: {
484
455
  ensureEmpty(effect.publicLogs);
485
- const flatPublicLogs = reader.readFieldArray(length);
486
- let i = 0;
487
- while (i < length) {
488
- const logLen = flatPublicLogs[i++].toNumber();
489
- const logFields = flatPublicLogs.slice(i, (i += logLen));
490
- effect.publicLogs.push(
491
- PublicLog.fromFields(logFields.concat(new Array(PUBLIC_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
492
- );
493
- }
456
+ effect.publicLogs = Array.from({ length }, () => PublicLog.fromBlobFields(reader));
494
457
  break;
495
458
  }
496
459
  case CONTRACT_CLASS_LOGS_PREFIX: {
497
460
  ensureEmpty(effect.contractClassLogs);
498
- const flatContractClassLogs = reader.readFieldArray(length);
499
- let i = 0;
500
- while (i < length) {
501
- const logLen = flatContractClassLogs[i++].toNumber();
502
- // +1 for address
503
- const logFields = flatContractClassLogs.slice(i, (i += logLen + 1));
504
- effect.contractClassLogs.push(
505
- ContractClassLog.fromFields(
506
- logFields.concat(new Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO)),
507
- ),
508
- );
509
- }
461
+ effect.contractClassLogs = Array.from({ length }, () => ContractClassLog.fromBlobFields(reader));
510
462
  break;
511
463
  }
512
464
  case REVERT_CODE_PREFIX:
513
465
  default:
514
466
  throw new Error(`Too many fields to decode given to TxEffect.fromBlobFields()`);
515
467
  }
468
+ fieldsProcessed = totalFields - reader.remainingFields();
516
469
  }
517
470
  return effect;
518
471
  }
@@ -551,16 +504,23 @@ export class TxEffect {
551
504
 
552
505
  [inspect.custom]() {
553
506
  return `TxEffect {
554
- revertCode: ${this.revertCode},
507
+ revertCode: ${this.revertCode.getCode()},
555
508
  txHash: ${this.txHash},
556
509
  transactionFee: ${this.transactionFee},
557
510
  note hashes: [${this.noteHashes.map(h => h.toString()).join(', ')}],
558
511
  nullifiers: [${this.nullifiers.map(h => h.toString()).join(', ')}],
559
512
  l2ToL1Msgs: [${this.l2ToL1Msgs.map(h => h.toString()).join(', ')}],
560
513
  publicDataWrites: [${this.publicDataWrites.map(h => h.toString()).join(', ')}],
561
- privateLogs: [${this.privateLogs.map(l => l.toString()).join(', ')}],
562
- publicLogs: [${this.publicLogs.map(l => l.toString()).join(', ')}],
563
- contractClassLogs: [${this.contractClassLogs.map(l => l.toString()).join(', ')}],
514
+ privateLogs: [${this.privateLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
515
+ publicLogs: [${this.publicLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
516
+ contractClassLogs: [${this.contractClassLogs
517
+ .map(l =>
518
+ l
519
+ .toFields()
520
+ .map(f => f.toString())
521
+ .join(','),
522
+ )
523
+ .join(', ')}],
564
524
  }`;
565
525
  }
566
526
 
@@ -54,6 +54,11 @@ export class TxExecutionRequest {
54
54
  * Read-only data passed through the oracle calls during this tx execution.
55
55
  */
56
56
  public capsules: Capsule[],
57
+ /**
58
+ * A salt to make the tx request hash difficult to predict.
59
+ * The hash is used as the first nullifier if there is no nullifier emitted throughout the tx.
60
+ */
61
+ public salt = Fr.random(),
57
62
  ) {}
58
63
 
59
64
  static get schema(): ZodFor<TxExecutionRequest> {
@@ -66,6 +71,7 @@ export class TxExecutionRequest {
66
71
  argsOfCalls: z.array(HashedValues.schema),
67
72
  authWitnesses: z.array(AuthWitness.schema),
68
73
  capsules: z.array(Capsule.schema),
74
+ salt: schemas.Fr,
69
75
  })
70
76
  .transform(TxExecutionRequest.from);
71
77
  }
@@ -77,6 +83,7 @@ export class TxExecutionRequest {
77
83
  new FunctionData(this.functionSelector, true /* isPrivate */),
78
84
  this.firstCallArgsHash,
79
85
  this.txContext,
86
+ this.salt,
80
87
  );
81
88
  }
82
89
 
@@ -89,6 +96,7 @@ export class TxExecutionRequest {
89
96
  fields.argsOfCalls,
90
97
  fields.authWitnesses,
91
98
  fields.capsules,
99
+ fields.salt,
92
100
  ] as const;
93
101
  }
94
102
 
@@ -109,6 +117,7 @@ export class TxExecutionRequest {
109
117
  new Vector(this.argsOfCalls),
110
118
  new Vector(this.authWitnesses),
111
119
  new Vector(this.capsules),
120
+ this.salt,
112
121
  );
113
122
  }
114
123
 
@@ -135,6 +144,7 @@ export class TxExecutionRequest {
135
144
  reader.readVector(HashedValues),
136
145
  reader.readVector(AuthWitness),
137
146
  reader.readVector(Capsule),
147
+ Fr.fromBuffer(reader),
138
148
  );
139
149
  }
140
150
 
@@ -159,6 +169,7 @@ export class TxExecutionRequest {
159
169
  new Capsule(await AztecAddress.random(), Fr.random(), [Fr.random(), Fr.random()]),
160
170
  new Capsule(await AztecAddress.random(), Fr.random(), [Fr.random()]),
161
171
  ],
172
+ Fr.random(),
162
173
  );
163
174
  }
164
175
 
@@ -79,7 +79,7 @@ export class TxReceipt {
79
79
  } else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
80
80
  return TxStatus.BOTH_REVERTED;
81
81
  } else {
82
- throw new Error(`Unknown revert code: ${revertCode}`);
82
+ throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
83
83
  }
84
84
  }
85
85
  }
@@ -22,10 +22,12 @@ export class TxRequest {
22
22
  public argsHash: Fr,
23
23
  /** Transaction context. */
24
24
  public txContext: TxContext,
25
+ /** A salt to make the hash difficult to predict. The hash is used as the first nullifier if there is no nullifier emitted throughout the tx. */
26
+ public salt: Fr,
25
27
  ) {}
26
28
  // docs:end:constructor
27
29
  static getFields(fields: FieldsOf<TxRequest>) {
28
- return [fields.origin, fields.functionData, fields.argsHash, fields.txContext] as const;
30
+ return [fields.origin, fields.functionData, fields.argsHash, fields.txContext, fields.salt] as const;
29
31
  }
30
32
 
31
33
  static from(fields: FieldsOf<TxRequest>): TxRequest {
@@ -60,6 +62,7 @@ export class TxRequest {
60
62
  reader.readObject(FunctionData),
61
63
  Fr.fromBuffer(reader),
62
64
  reader.readObject(TxContext),
65
+ Fr.fromBuffer(reader),
63
66
  );
64
67
  }
65
68
 
@@ -68,10 +71,16 @@ export class TxRequest {
68
71
  }
69
72
 
70
73
  static empty() {
71
- return new TxRequest(AztecAddress.ZERO, FunctionData.empty(), Fr.zero(), TxContext.empty());
74
+ return new TxRequest(AztecAddress.ZERO, FunctionData.empty(), Fr.zero(), TxContext.empty(), Fr.zero());
72
75
  }
73
76
 
74
77
  isEmpty() {
75
- return this.origin.isZero() && this.functionData.isEmpty() && this.argsHash.isZero() && this.txContext.isEmpty();
78
+ return (
79
+ this.origin.isZero() &&
80
+ this.functionData.isEmpty() &&
81
+ this.argsHash.isZero() &&
82
+ this.txContext.isEmpty() &&
83
+ this.salt.isZero()
84
+ );
76
85
  }
77
86
  }
@@ -25,7 +25,7 @@ export const TX_ERROR_INCORRECT_CALLDATA = 'Incorrect calldata for public call';
25
25
  export const TX_ERROR_CALLDATA_COUNT_MISMATCH = 'Wrong number of calldata for public calls';
26
26
  export const TX_ERROR_CALLDATA_COUNT_TOO_LARGE = 'Total calldata too large for enqueued public calls';
27
27
  export const TX_ERROR_CONTRACT_CLASS_LOG_COUNT = 'Mismatched number of contract class logs';
28
- export const TX_ERROR_CONTRACT_CLASS_LOG_LENGTH = 'Mismatched contract class logs length';
28
+ export const TX_ERROR_CONTRACT_CLASS_LOG_LENGTH = 'Incorrect contract class logs length';
29
29
  export const TX_ERROR_CONTRACT_CLASS_LOGS = 'Mismatched contract class logs';
30
30
  export const TX_ERROR_CONTRACT_CLASS_LOG_SORTING = 'Incorrectly sorted contract class logs';
31
31
 
@@ -0,0 +1 @@
1
+ export { UpdateChecker, getPackageVersion } from './update-checker.js';
@@ -0,0 +1,152 @@
1
+ import { RegistryContract, type ViemClient } from '@aztec/ethereum';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { createLogger } from '@aztec/foundation/log';
4
+ import { RunningPromise } from '@aztec/foundation/running-promise';
5
+ import { fileURLToPath } from '@aztec/foundation/url';
6
+
7
+ import { EventEmitter } from 'events';
8
+ import { readFileSync } from 'fs';
9
+ import { dirname, resolve } from 'path';
10
+ import { isDeepStrictEqual } from 'util';
11
+ import { z } from 'zod';
12
+
13
+ const updateConfigSchema = z.object({
14
+ version: z.string().optional(),
15
+ config: z.any().optional(),
16
+ });
17
+
18
+ export type EventMap = {
19
+ newRollupVersion: [{ currentVersion: bigint; latestVersion: bigint }];
20
+ newNodeVersion: [{ currentVersion: string; latestVersion: string }];
21
+ updateNodeConfig: [object];
22
+ };
23
+
24
+ type Config = {
25
+ baseURL: URL;
26
+ nodeVersion?: string;
27
+ checkIntervalMs?: number;
28
+ registryContractAddress: EthAddress;
29
+ publicClient: ViemClient;
30
+ fetch?: typeof fetch;
31
+ };
32
+
33
+ export class UpdateChecker extends EventEmitter<EventMap> {
34
+ private runningPromise: RunningPromise;
35
+ private lastPatchedConfig: object = {};
36
+
37
+ constructor(
38
+ private updatesUrl: URL,
39
+ private nodeVersion: string | undefined,
40
+ private rollupVersion: bigint,
41
+ private fetch: typeof globalThis.fetch,
42
+ private getLatestRollupVersion: () => Promise<bigint>,
43
+ private checkIntervalMs = 60_000, // every minute
44
+ private log = createLogger('foundation:update-check'),
45
+ ) {
46
+ super();
47
+ this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
48
+ }
49
+
50
+ public static async new(config: Config): Promise<UpdateChecker> {
51
+ const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
52
+ const getLatestRollupVersion = () => registryContract.getRollupVersions().then(versions => versions.at(-1)!);
53
+
54
+ return new UpdateChecker(
55
+ config.baseURL,
56
+ config.nodeVersion ?? getPackageVersion(),
57
+ await getLatestRollupVersion(),
58
+ config.fetch ?? fetch,
59
+ getLatestRollupVersion,
60
+ config.checkIntervalMs,
61
+ );
62
+ }
63
+
64
+ public start(): void {
65
+ if (this.runningPromise.isRunning()) {
66
+ this.log.debug(`Can't start update checker again`);
67
+ return;
68
+ }
69
+
70
+ this.log.info('Starting update checker', {
71
+ nodeVersion: this.nodeVersion,
72
+ rollupVersion: this.rollupVersion,
73
+ });
74
+ this.runningPromise.start();
75
+ }
76
+
77
+ public stop(): Promise<void> {
78
+ if (!this.runningPromise.isRunning()) {
79
+ this.log.debug(`Can't stop update checker because it is not running`);
80
+ return Promise.resolve();
81
+ }
82
+ return this.runningPromise.stop();
83
+ }
84
+
85
+ public trigger(): Promise<void> {
86
+ return this.runningPromise.trigger();
87
+ }
88
+
89
+ private runChecks = async (): Promise<void> => {
90
+ await Promise.all([this.checkRollupVersion(), this.checkConfig()]);
91
+ };
92
+
93
+ private async checkRollupVersion(): Promise<void> {
94
+ try {
95
+ const canonicalRollupVersion = await this.getLatestRollupVersion();
96
+ if (canonicalRollupVersion !== this.rollupVersion) {
97
+ this.log.debug('New canonical rollup version', {
98
+ currentVersion: this.rollupVersion,
99
+ latestVersion: canonicalRollupVersion,
100
+ });
101
+ this.emit('newRollupVersion', { currentVersion: this.rollupVersion, latestVersion: canonicalRollupVersion });
102
+ }
103
+ } catch (err) {
104
+ this.log.warn(`Failed to check if there is a new rollup`, err);
105
+ }
106
+ }
107
+
108
+ private async checkConfig(): Promise<void> {
109
+ try {
110
+ const response = await this.fetch(this.updatesUrl);
111
+ const body = await response.json();
112
+ if (!response.ok) {
113
+ this.log.warn(`Unexpected HTTP response checking for updates`, {
114
+ status: response.status,
115
+ body: await response.text(),
116
+ url: this.updatesUrl,
117
+ });
118
+ }
119
+
120
+ const { version, config } = updateConfigSchema.parse(body);
121
+
122
+ if (this.nodeVersion && version && version !== this.nodeVersion) {
123
+ this.log.debug('New node version', { currentVersion: this.nodeVersion, latestVersion: version });
124
+ this.emit('newNodeVersion', { currentVersion: this.nodeVersion, latestVersion: version });
125
+ }
126
+
127
+ if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
128
+ this.log.debug('New node config', { config });
129
+ this.lastPatchedConfig = config;
130
+ this.emit('updateNodeConfig', config);
131
+ }
132
+ } catch (err) {
133
+ this.log.warn(`Failed to check if there is an update`, err);
134
+ }
135
+ }
136
+ }
137
+
138
+ /**
139
+ * Returns package version.
140
+ */
141
+ export function getPackageVersion(): string | undefined {
142
+ try {
143
+ const releasePleaseManifestPath = resolve(
144
+ dirname(fileURLToPath(import.meta.url)),
145
+ '../../../../.release-please-manifest.json',
146
+ );
147
+ const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
148
+ return version;
149
+ } catch {
150
+ return undefined;
151
+ }
152
+ }
@@ -4,7 +4,7 @@ import { jsonStringify } from '@aztec/foundation/json-rpc';
4
4
 
5
5
  import type Koa from 'koa';
6
6
 
7
- import type { ChainConfig } from '../config/config.js';
7
+ import type { ChainConfig } from '../config/chain-config.js';
8
8
 
9
9
  // REFACTOR: This file is not a circuit-type, but at the moment we don't have any other
10
10
  // package common to all components that we can use for this shared code.
@@ -88,7 +88,10 @@ export const CIRCUIT_RECURSIVE_INDEX = 3;
88
88
  * Provides a 'fields' representation of a circuit's verification key
89
89
  */
90
90
  export class VerificationKeyAsFields {
91
- constructor(public key: Fr[], public hash: Fr) {}
91
+ constructor(
92
+ public key: Fr[],
93
+ public hash: Fr,
94
+ ) {}
92
95
 
93
96
  public get numPublicInputs() {
94
97
  return Number(this.key[CIRCUIT_PUBLIC_INPUTS_INDEX]);
@@ -252,7 +255,10 @@ export class VerificationKey {
252
255
  }
253
256
 
254
257
  export class VerificationKeyData {
255
- constructor(public readonly keyAsFields: VerificationKeyAsFields, public readonly keyAsBytes: Buffer) {}
258
+ constructor(
259
+ public readonly keyAsFields: VerificationKeyAsFields,
260
+ public readonly keyAsBytes: Buffer,
261
+ ) {}
256
262
 
257
263
  public get numPublicInputs() {
258
264
  return this.keyAsFields.numPublicInputs;
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAgB/D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE;QACX,4BAA4B;QAC5B,aAAa,EAAE,UAAU,CAAC;KAC3B,CAAC;CACH,CAAC"}
File without changes
File without changes