@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d52e

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 (688) hide show
  1. package/dest/abi/decoder.d.ts +1 -1
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +1 -4
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +9 -5
  7. package/dest/abi/function_call.d.ts +47 -9
  8. package/dest/abi/function_call.d.ts.map +1 -1
  9. package/dest/abi/function_call.js +20 -3
  10. package/dest/abi/utils.d.ts +7 -1
  11. package/dest/abi/utils.d.ts.map +1 -1
  12. package/dest/abi/utils.js +7 -0
  13. package/dest/auth_witness/auth_witness.d.ts +2 -1
  14. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  15. package/dest/auth_witness/auth_witness.js +3 -3
  16. package/dest/avm/avm.d.ts +362 -362
  17. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  18. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  19. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  20. package/dest/avm/avm_proving_request.d.ts +465 -465
  21. package/dest/avm/contract_storage_read.d.ts +13 -1
  22. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  23. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  24. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  25. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  26. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  27. package/dest/avm/public_data_read.d.ts +10 -1
  28. package/dest/avm/public_data_read.d.ts.map +1 -1
  29. package/dest/avm/public_data_update_request.d.ts +10 -1
  30. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  31. package/dest/avm/public_data_write.d.ts +7 -1
  32. package/dest/avm/public_data_write.d.ts.map +1 -1
  33. package/dest/avm/public_inner_call_request.d.ts +4 -1
  34. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  35. package/dest/avm/revert_code.d.ts +19 -4
  36. package/dest/avm/revert_code.d.ts.map +1 -1
  37. package/dest/avm/revert_code.js +15 -5
  38. package/dest/block/block_data.d.ts +52 -0
  39. package/dest/block/block_data.d.ts.map +1 -0
  40. package/dest/block/block_data.js +12 -0
  41. package/dest/block/block_hash.d.ts +18 -14
  42. package/dest/block/block_hash.d.ts.map +1 -1
  43. package/dest/block/block_hash.js +22 -20
  44. package/dest/block/block_parameter.d.ts +4 -3
  45. package/dest/block/block_parameter.d.ts.map +1 -1
  46. package/dest/block/block_parameter.js +2 -0
  47. package/dest/block/body.d.ts +1 -1
  48. package/dest/block/body.d.ts.map +1 -1
  49. package/dest/block/body.js +2 -1
  50. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  51. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  52. package/dest/block/checkpointed_l2_block.js +7 -45
  53. package/dest/block/in_block.d.ts +9 -9
  54. package/dest/block/in_block.d.ts.map +1 -1
  55. package/dest/block/in_block.js +5 -5
  56. package/dest/block/index.d.ts +2 -3
  57. package/dest/block/index.d.ts.map +1 -1
  58. package/dest/block/index.js +1 -2
  59. package/dest/block/l2_block.d.ts +56 -59
  60. package/dest/block/l2_block.d.ts.map +1 -1
  61. package/dest/block/l2_block.js +64 -110
  62. package/dest/block/l2_block_source.d.ts +84 -39
  63. package/dest/block/l2_block_source.d.ts.map +1 -1
  64. package/dest/block/l2_block_source.js +2 -1
  65. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  66. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  67. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  68. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  69. package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
  70. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  71. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  72. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  73. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  74. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  75. package/dest/block/validate_block_result.d.ts +1 -1
  76. package/dest/block/validate_block_result.d.ts.map +1 -1
  77. package/dest/block/validate_block_result.js +5 -4
  78. package/dest/checkpoint/checkpoint.d.ts +43 -19
  79. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  80. package/dest/checkpoint/checkpoint.js +37 -14
  81. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  82. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  83. package/dest/checkpoint/checkpoint_data.js +26 -0
  84. package/dest/checkpoint/index.d.ts +2 -1
  85. package/dest/checkpoint/index.d.ts.map +1 -1
  86. package/dest/checkpoint/index.js +1 -0
  87. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  88. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  89. package/dest/checkpoint/published_checkpoint.js +5 -5
  90. package/dest/config/index.d.ts +2 -1
  91. package/dest/config/index.d.ts.map +1 -1
  92. package/dest/config/index.js +1 -0
  93. package/dest/config/node-rpc-config.js +1 -1
  94. package/dest/config/sequencer-config.d.ts +12 -0
  95. package/dest/config/sequencer-config.d.ts.map +1 -0
  96. package/dest/config/sequencer-config.js +25 -0
  97. package/dest/contract/complete_address.d.ts +4 -1
  98. package/dest/contract/complete_address.d.ts.map +1 -1
  99. package/dest/contract/contract_address.js +4 -4
  100. package/dest/contract/contract_class.d.ts +2 -3
  101. package/dest/contract/contract_class.d.ts.map +1 -1
  102. package/dest/contract/contract_class_id.d.ts +2 -2
  103. package/dest/contract/contract_class_id.d.ts.map +1 -1
  104. package/dest/contract/contract_class_id.js +6 -5
  105. package/dest/contract/contract_deployment_data.d.ts +5 -5
  106. package/dest/contract/index.d.ts +1 -3
  107. package/dest/contract/index.d.ts.map +1 -1
  108. package/dest/contract/index.js +0 -2
  109. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  110. package/dest/contract/interfaces/node-info.d.ts +3 -1
  111. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  112. package/dest/contract/interfaces/node-info.js +2 -1
  113. package/dest/contract/private_function.d.ts +1 -1
  114. package/dest/contract/private_function.d.ts.map +1 -1
  115. package/dest/contract/private_function.js +3 -4
  116. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  117. package/dest/contract/private_function_membership_proof.js +1 -1
  118. package/dest/database-version/database_version.d.ts +58 -0
  119. package/dest/database-version/database_version.d.ts.map +1 -0
  120. package/dest/database-version/database_version.js +69 -0
  121. package/dest/database-version/version_manager.d.ts +3 -49
  122. package/dest/database-version/version_manager.d.ts.map +1 -1
  123. package/dest/database-version/version_manager.js +1 -66
  124. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  125. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  126. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  127. package/dest/deserialization/index.d.ts +11 -0
  128. package/dest/deserialization/index.d.ts.map +1 -0
  129. package/dest/deserialization/index.js +10 -0
  130. package/dest/epoch-helpers/index.d.ts +7 -1
  131. package/dest/epoch-helpers/index.d.ts.map +1 -1
  132. package/dest/epoch-helpers/index.js +9 -3
  133. package/dest/errors/proving_error.d.ts +2 -2
  134. package/dest/errors/proving_error.d.ts.map +1 -1
  135. package/dest/file-store/local.d.ts +3 -3
  136. package/dest/file-store/local.d.ts.map +1 -1
  137. package/dest/file-store/local.js +13 -4
  138. package/dest/file-store/s3.d.ts +1 -1
  139. package/dest/file-store/s3.d.ts.map +1 -1
  140. package/dest/file-store/s3.js +11 -3
  141. package/dest/hash/hash.d.ts +2 -1
  142. package/dest/hash/hash.d.ts.map +1 -1
  143. package/dest/hash/hash.js +16 -10
  144. package/dest/hash/map_slot.d.ts +1 -1
  145. package/dest/hash/map_slot.d.ts.map +1 -1
  146. package/dest/hash/map_slot.js +4 -3
  147. package/dest/interfaces/api_limit.d.ts +2 -1
  148. package/dest/interfaces/api_limit.d.ts.map +1 -1
  149. package/dest/interfaces/api_limit.js +1 -0
  150. package/dest/interfaces/archiver.d.ts +1 -1
  151. package/dest/interfaces/archiver.d.ts.map +1 -1
  152. package/dest/interfaces/archiver.js +23 -15
  153. package/dest/interfaces/aztec-node-admin.d.ts +110 -31
  154. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  155. package/dest/interfaces/aztec-node-admin.js +12 -4
  156. package/dest/interfaces/aztec-node.d.ts +66 -69
  157. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  158. package/dest/interfaces/aztec-node.js +10 -16
  159. package/dest/interfaces/block-builder.d.ts +22 -14
  160. package/dest/interfaces/block-builder.d.ts.map +1 -1
  161. package/dest/interfaces/block-builder.js +7 -0
  162. package/dest/interfaces/configs.d.ts +34 -9
  163. package/dest/interfaces/configs.d.ts.map +1 -1
  164. package/dest/interfaces/configs.js +6 -1
  165. package/dest/interfaces/get_logs_response.d.ts +16 -9
  166. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  167. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  168. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  169. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  170. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  171. package/dest/interfaces/p2p.d.ts +4 -9
  172. package/dest/interfaces/p2p.d.ts.map +1 -1
  173. package/dest/interfaces/prover-broker.d.ts +16 -1
  174. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  175. package/dest/interfaces/prover-broker.js +4 -1
  176. package/dest/interfaces/prover-client.d.ts +15 -1
  177. package/dest/interfaces/prover-client.d.ts.map +1 -1
  178. package/dest/interfaces/prover-client.js +12 -1
  179. package/dest/interfaces/proving-job.d.ts +216 -216
  180. package/dest/interfaces/slasher.d.ts +9 -1
  181. package/dest/interfaces/slasher.d.ts.map +1 -1
  182. package/dest/interfaces/slasher.js +2 -0
  183. package/dest/interfaces/tx_provider.d.ts +3 -3
  184. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  185. package/dest/interfaces/validator.d.ts +121 -16
  186. package/dest/interfaces/validator.d.ts.map +1 -1
  187. package/dest/interfaces/validator.js +7 -3
  188. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  189. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  190. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  191. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  192. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  193. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  194. package/dest/kernel/hints/index.d.ts +2 -2
  195. package/dest/kernel/hints/index.js +2 -2
  196. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  197. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  198. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  199. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  200. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  201. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  202. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  203. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  204. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  205. package/dest/kernel/hints/read_request.d.ts +7 -1
  206. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  207. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  208. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  209. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  210. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  211. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  212. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  213. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  214. package/dest/kernel/private_call_data.d.ts +25 -1
  215. package/dest/kernel/private_call_data.d.ts.map +1 -1
  216. package/dest/kernel/private_call_request.d.ts +16 -1
  217. package/dest/kernel/private_call_request.d.ts.map +1 -1
  218. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  219. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  220. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  221. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  222. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  223. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  224. package/dest/kernel/private_kernel_data.d.ts +7 -1
  225. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  226. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  227. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  228. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  229. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  230. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  231. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  232. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  233. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  234. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  235. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +25 -3
  236. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  237. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
  238. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  239. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  240. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  241. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  242. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  243. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  244. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  245. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  246. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  247. package/dest/kernel/private_validation_requests.d.ts +13 -4
  248. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  249. package/dest/kernel/private_validation_requests.js +9 -9
  250. package/dest/kernel/public_call_request.d.ts +22 -1
  251. package/dest/kernel/public_call_request.d.ts.map +1 -1
  252. package/dest/kernel/utils/optional_number.d.ts +7 -1
  253. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  254. package/dest/keys/derivation.d.ts +3 -3
  255. package/dest/keys/derivation.js +15 -15
  256. package/dest/keys/key_types.d.ts +3 -3
  257. package/dest/keys/key_types.d.ts.map +1 -1
  258. package/dest/keys/public_keys.d.ts +5 -1
  259. package/dest/keys/public_keys.d.ts.map +1 -1
  260. package/dest/keys/public_keys.js +2 -2
  261. package/dest/keys/utils.d.ts +1 -1
  262. package/dest/keys/utils.d.ts.map +1 -1
  263. package/dest/keys/utils.js +8 -4
  264. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  265. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  266. package/dest/l1-contracts/slash_factory.js +1 -0
  267. package/dest/logs/debug_log_store.d.ts +30 -0
  268. package/dest/logs/debug_log_store.d.ts.map +1 -0
  269. package/dest/logs/debug_log_store.js +30 -0
  270. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  271. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  272. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  273. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  274. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  275. package/dest/logs/extended_public_log.d.ts +17 -9
  276. package/dest/logs/extended_public_log.d.ts.map +1 -1
  277. package/dest/logs/index.d.ts +3 -2
  278. package/dest/logs/index.d.ts.map +1 -1
  279. package/dest/logs/index.js +2 -1
  280. package/dest/logs/log_id.d.ts +21 -14
  281. package/dest/logs/log_id.d.ts.map +1 -1
  282. package/dest/logs/log_id.js +20 -17
  283. package/dest/logs/pre_tag.d.ts +16 -11
  284. package/dest/logs/pre_tag.d.ts.map +1 -1
  285. package/dest/logs/pre_tag.js +2 -2
  286. package/dest/logs/private_log.d.ts +2 -2
  287. package/dest/logs/private_log.d.ts.map +1 -1
  288. package/dest/logs/siloed_tag.d.ts +5 -3
  289. package/dest/logs/siloed_tag.d.ts.map +1 -1
  290. package/dest/logs/siloed_tag.js +8 -6
  291. package/dest/logs/tag.js +1 -1
  292. package/dest/messaging/inbox_leaf.d.ts +3 -1
  293. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  294. package/dest/messaging/l1_actor.d.ts +7 -1
  295. package/dest/messaging/l1_actor.d.ts.map +1 -1
  296. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  297. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  298. package/dest/messaging/l2_actor.d.ts +7 -1
  299. package/dest/messaging/l2_actor.d.ts.map +1 -1
  300. package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
  301. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  302. package/dest/messaging/l2_to_l1_membership.js +8 -6
  303. package/dest/messaging/out_hash.d.ts +41 -4
  304. package/dest/messaging/out_hash.d.ts.map +1 -1
  305. package/dest/messaging/out_hash.js +52 -26
  306. package/dest/note/index.d.ts +1 -2
  307. package/dest/note/index.d.ts.map +1 -1
  308. package/dest/note/index.js +0 -1
  309. package/dest/note/note_dao.d.ts +36 -5
  310. package/dest/note/note_dao.d.ts.map +1 -1
  311. package/dest/note/note_dao.js +15 -12
  312. package/dest/p2p/attestation_utils.d.ts +11 -1
  313. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  314. package/dest/p2p/attestation_utils.js +45 -0
  315. package/dest/p2p/block_proposal.d.ts +23 -8
  316. package/dest/p2p/block_proposal.d.ts.map +1 -1
  317. package/dest/p2p/block_proposal.js +26 -10
  318. package/dest/p2p/checkpoint_attestation.d.ts +6 -1
  319. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  320. package/dest/p2p/checkpoint_attestation.js +1 -1
  321. package/dest/p2p/checkpoint_proposal.d.ts +34 -9
  322. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  323. package/dest/p2p/checkpoint_proposal.js +46 -20
  324. package/dest/p2p/client_type.d.ts +2 -5
  325. package/dest/p2p/client_type.d.ts.map +1 -1
  326. package/dest/p2p/client_type.js +0 -7
  327. package/dest/p2p/consensus_payload.d.ts +15 -5
  328. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  329. package/dest/p2p/consensus_payload.js +22 -18
  330. package/dest/p2p/constants.d.ts +5 -0
  331. package/dest/p2p/constants.d.ts.map +1 -0
  332. package/dest/p2p/constants.js +3 -0
  333. package/dest/p2p/index.d.ts +2 -2
  334. package/dest/p2p/index.d.ts.map +1 -1
  335. package/dest/p2p/index.js +1 -1
  336. package/dest/p2p/message_validator.d.ts +18 -3
  337. package/dest/p2p/message_validator.d.ts.map +1 -1
  338. package/dest/p2p/message_validator.js +2 -1
  339. package/dest/p2p/signed_txs.d.ts +3 -1
  340. package/dest/p2p/signed_txs.d.ts.map +1 -1
  341. package/dest/p2p/signed_txs.js +6 -1
  342. package/dest/p2p/topic_type.d.ts +3 -4
  343. package/dest/p2p/topic_type.d.ts.map +1 -1
  344. package/dest/p2p/topic_type.js +7 -23
  345. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  346. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  347. package/dest/parity/parity_public_inputs.d.ts +4 -1
  348. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  349. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  350. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  351. package/dest/proofs/chonk_proof.d.ts +1 -1
  352. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  353. package/dest/proofs/chonk_proof.js +9 -4
  354. package/dest/proofs/proof.d.ts +4 -1
  355. package/dest/proofs/proof.d.ts.map +1 -1
  356. package/dest/proofs/recursive_proof.d.ts +10 -1
  357. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  358. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  359. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  360. package/dest/rollup/block_constant_data.d.ts +12 -1
  361. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  362. package/dest/rollup/block_headers_hash.js +1 -1
  363. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  364. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  365. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  366. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  367. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  368. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  369. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  370. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  371. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  372. package/dest/rollup/checkpoint_header.d.ts +31 -4
  373. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  374. package/dest/rollup/checkpoint_header.js +23 -7
  375. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  376. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  377. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  378. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  379. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  380. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  381. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  382. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  383. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  384. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  385. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  386. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  387. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  388. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  389. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  390. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  391. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  392. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  393. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  394. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  395. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  396. package/dest/schemas/schemas.d.ts +1 -1
  397. package/dest/slashing/empire.d.ts +1 -1
  398. package/dest/slashing/empire.d.ts.map +1 -1
  399. package/dest/slashing/empire.js +2 -0
  400. package/dest/slashing/helpers.d.ts +2 -2
  401. package/dest/slashing/helpers.d.ts.map +1 -1
  402. package/dest/slashing/helpers.js +6 -0
  403. package/dest/slashing/tally.d.ts +2 -1
  404. package/dest/slashing/tally.d.ts.map +1 -1
  405. package/dest/slashing/tally.js +6 -2
  406. package/dest/slashing/types.d.ts +7 -3
  407. package/dest/slashing/types.d.ts.map +1 -1
  408. package/dest/slashing/types.js +13 -1
  409. package/dest/stats/stats.d.ts +1 -3
  410. package/dest/stats/stats.d.ts.map +1 -1
  411. package/dest/tests/factories.d.ts +4 -4
  412. package/dest/tests/factories.d.ts.map +1 -1
  413. package/dest/tests/factories.js +26 -27
  414. package/dest/tests/jest.js +1 -1
  415. package/dest/tests/mocks.d.ts +24 -15
  416. package/dest/tests/mocks.d.ts.map +1 -1
  417. package/dest/tests/mocks.js +63 -40
  418. package/dest/timetable/index.d.ts +37 -0
  419. package/dest/timetable/index.d.ts.map +1 -0
  420. package/dest/timetable/index.js +39 -0
  421. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  422. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  423. package/dest/trees/nullifier_leaf.d.ts +13 -1
  424. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  425. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  426. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  427. package/dest/trees/public_data_leaf.d.ts +17 -1
  428. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  429. package/dest/trees/public_data_leaf.js +7 -6
  430. package/dest/trees/public_data_witness.d.ts +11 -1
  431. package/dest/trees/public_data_witness.d.ts.map +1 -1
  432. package/dest/tx/block_header.d.ts +14 -2
  433. package/dest/tx/block_header.d.ts.map +1 -1
  434. package/dest/tx/block_header.js +6 -2
  435. package/dest/tx/call_context.d.ts +13 -1
  436. package/dest/tx/call_context.d.ts.map +1 -1
  437. package/dest/tx/capsule.d.ts +4 -1
  438. package/dest/tx/capsule.d.ts.map +1 -1
  439. package/dest/tx/execution_payload.d.ts +9 -1
  440. package/dest/tx/execution_payload.d.ts.map +1 -1
  441. package/dest/tx/function_data.d.ts +4 -2
  442. package/dest/tx/function_data.d.ts.map +1 -1
  443. package/dest/tx/global_variables.d.ts +12 -4
  444. package/dest/tx/global_variables.d.ts.map +1 -1
  445. package/dest/tx/hashed_values.d.ts +7 -1
  446. package/dest/tx/hashed_values.d.ts.map +1 -1
  447. package/dest/tx/in_tx.d.ts +4 -4
  448. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  449. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  450. package/dest/tx/indexed_tx_effect.js +3 -2
  451. package/dest/tx/partial_state_reference.d.ts +4 -1
  452. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  453. package/dest/tx/private_execution_result.d.ts +23 -2
  454. package/dest/tx/private_execution_result.d.ts.map +1 -1
  455. package/dest/tx/private_execution_result.js +1 -1
  456. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  457. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  458. package/dest/tx/profiling.d.ts +152 -29
  459. package/dest/tx/profiling.d.ts.map +1 -1
  460. package/dest/tx/profiling.js +47 -10
  461. package/dest/tx/protocol_contracts.d.ts +2 -2
  462. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  463. package/dest/tx/protocol_contracts.js +2 -2
  464. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  465. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  466. package/dest/tx/public_simulation_output.d.ts +4 -2
  467. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  468. package/dest/tx/public_simulation_output.js +7 -3
  469. package/dest/tx/state_reference.d.ts +3 -1
  470. package/dest/tx/state_reference.d.ts.map +1 -1
  471. package/dest/tx/tx.d.ts +24 -1
  472. package/dest/tx/tx.d.ts.map +1 -1
  473. package/dest/tx/tx.js +6 -3
  474. package/dest/tx/tx_context.d.ts +2 -1
  475. package/dest/tx/tx_context.d.ts.map +1 -1
  476. package/dest/tx/tx_effect.d.ts +32 -6
  477. package/dest/tx/tx_effect.d.ts.map +1 -1
  478. package/dest/tx/tx_effect.js +0 -7
  479. package/dest/tx/tx_execution_request.d.ts +30 -1
  480. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  481. package/dest/tx/tx_hash.d.ts +2 -1
  482. package/dest/tx/tx_hash.d.ts.map +1 -1
  483. package/dest/tx/tx_receipt.d.ts +62 -14
  484. package/dest/tx/tx_receipt.d.ts.map +1 -1
  485. package/dest/tx/tx_receipt.js +55 -16
  486. package/dest/tx/tx_request.d.ts +6 -1
  487. package/dest/tx/tx_request.d.ts.map +1 -1
  488. package/dest/tx/tx_request.js +2 -2
  489. package/dest/tx/validator/empty_validator.d.ts +2 -2
  490. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  491. package/dest/tx/validator/error_texts.d.ts +3 -2
  492. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  493. package/dest/tx/validator/error_texts.js +3 -1
  494. package/dest/tx/validator/tx_validator.d.ts +2 -2
  495. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  496. package/dest/types/shared.d.ts +4 -1
  497. package/dest/types/shared.d.ts.map +1 -1
  498. package/dest/update-checker/index.d.ts +3 -2
  499. package/dest/update-checker/index.d.ts.map +1 -1
  500. package/dest/update-checker/index.js +2 -1
  501. package/dest/update-checker/package_version.d.ts +3 -0
  502. package/dest/update-checker/package_version.d.ts.map +1 -0
  503. package/dest/update-checker/package_version.js +11 -0
  504. package/dest/update-checker/version_checker.d.ts +25 -0
  505. package/dest/update-checker/version_checker.d.ts.map +1 -0
  506. package/dest/update-checker/version_checker.js +50 -0
  507. package/dest/validators/schemas.d.ts +38 -38
  508. package/dest/validators/schemas.d.ts.map +1 -1
  509. package/dest/validators/schemas.js +4 -3
  510. package/dest/validators/types.d.ts +3 -3
  511. package/dest/validators/types.d.ts.map +1 -1
  512. package/dest/vks/verification_key.d.ts +22 -1
  513. package/dest/vks/verification_key.d.ts.map +1 -1
  514. package/dest/vks/vk_data.d.ts +7 -1
  515. package/dest/vks/vk_data.d.ts.map +1 -1
  516. package/dest/zkpassport/index.d.ts +3 -4
  517. package/dest/zkpassport/index.d.ts.map +1 -1
  518. package/dest/zkpassport/index.js +9 -9
  519. package/package.json +28 -14
  520. package/src/abi/decoder.ts +1 -4
  521. package/src/abi/encoder.ts +8 -5
  522. package/src/abi/function_call.ts +25 -3
  523. package/src/abi/utils.ts +17 -0
  524. package/src/auth_witness/auth_witness.ts +3 -3
  525. package/src/avm/revert_code.ts +15 -0
  526. package/src/block/block_data.ts +26 -0
  527. package/src/block/block_hash.ts +26 -25
  528. package/src/block/block_parameter.ts +4 -2
  529. package/src/block/body.ts +2 -1
  530. package/src/block/checkpointed_l2_block.ts +8 -58
  531. package/src/block/in_block.ts +6 -6
  532. package/src/block/index.ts +1 -2
  533. package/src/block/l2_block.ts +102 -150
  534. package/src/block/l2_block_source.ts +93 -42
  535. package/src/block/l2_block_stream/interfaces.ts +8 -5
  536. package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
  537. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  538. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  539. package/src/block/validate_block_result.ts +5 -4
  540. package/src/checkpoint/checkpoint.ts +61 -21
  541. package/src/checkpoint/checkpoint_data.ts +51 -0
  542. package/src/checkpoint/index.ts +1 -0
  543. package/src/checkpoint/published_checkpoint.ts +7 -4
  544. package/src/config/index.ts +1 -0
  545. package/src/config/node-rpc-config.ts +1 -1
  546. package/src/config/sequencer-config.ts +37 -0
  547. package/src/contract/contract_address.ts +4 -4
  548. package/src/contract/contract_class.ts +3 -3
  549. package/src/contract/contract_class_id.ts +6 -5
  550. package/src/contract/index.ts +0 -2
  551. package/src/contract/interfaces/node-info.ts +3 -0
  552. package/src/contract/private_function.ts +3 -4
  553. package/src/contract/private_function_membership_proof.ts +1 -1
  554. package/src/database-version/database_version.ts +87 -0
  555. package/src/database-version/version_manager.ts +1 -77
  556. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  557. package/src/deserialization/index.ts +21 -0
  558. package/src/epoch-helpers/index.ts +13 -1
  559. package/src/file-store/local.ts +15 -5
  560. package/src/file-store/s3.ts +12 -3
  561. package/src/hash/hash.ts +14 -10
  562. package/src/hash/map_slot.ts +3 -2
  563. package/src/interfaces/api_limit.ts +1 -0
  564. package/src/interfaces/archiver.ts +23 -24
  565. package/src/interfaces/aztec-node-admin.ts +26 -2
  566. package/src/interfaces/aztec-node.ts +86 -135
  567. package/src/interfaces/block-builder.ts +41 -23
  568. package/src/interfaces/configs.ts +19 -4
  569. package/src/interfaces/l2_logs_source.ts +17 -4
  570. package/src/interfaces/merkle_tree_operations.ts +1 -1
  571. package/src/interfaces/p2p.ts +3 -14
  572. package/src/interfaces/prover-broker.ts +22 -0
  573. package/src/interfaces/prover-client.ts +22 -0
  574. package/src/interfaces/slasher.ts +4 -0
  575. package/src/interfaces/tx_provider.ts +2 -2
  576. package/src/interfaces/validator.ts +22 -13
  577. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  578. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  579. package/src/kernel/hints/index.ts +2 -2
  580. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  581. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  582. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  583. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  584. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  585. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  586. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  587. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  588. package/src/kernel/private_validation_requests.ts +8 -8
  589. package/src/keys/derivation.ts +15 -15
  590. package/src/keys/key_types.ts +6 -2
  591. package/src/keys/public_keys.ts +2 -2
  592. package/src/keys/utils.ts +8 -4
  593. package/src/l1-contracts/slash_factory.ts +1 -0
  594. package/src/logs/debug_log_store.ts +54 -0
  595. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  596. package/src/logs/index.ts +2 -1
  597. package/src/logs/log_id.ts +22 -18
  598. package/src/logs/pre_tag.ts +5 -5
  599. package/src/logs/siloed_tag.ts +10 -4
  600. package/src/logs/tag.ts +1 -1
  601. package/src/messaging/l2_to_l1_membership.ts +8 -6
  602. package/src/messaging/out_hash.ts +60 -29
  603. package/src/note/index.ts +0 -1
  604. package/src/note/note_dao.ts +18 -13
  605. package/src/p2p/attestation_utils.ts +56 -0
  606. package/src/p2p/block_proposal.ts +36 -15
  607. package/src/p2p/checkpoint_attestation.ts +6 -1
  608. package/src/p2p/checkpoint_proposal.ts +74 -24
  609. package/src/p2p/client_type.ts +0 -6
  610. package/src/p2p/consensus_payload.ts +25 -17
  611. package/src/p2p/constants.ts +6 -0
  612. package/src/p2p/index.ts +1 -1
  613. package/src/p2p/message_validator.ts +14 -2
  614. package/src/p2p/signed_txs.ts +6 -1
  615. package/src/p2p/topic_type.ts +8 -15
  616. package/src/proofs/chonk_proof.ts +9 -5
  617. package/src/rollup/block_headers_hash.ts +1 -1
  618. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  619. package/src/rollup/checkpoint_header.ts +22 -2
  620. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  621. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  622. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  623. package/src/slashing/empire.ts +3 -1
  624. package/src/slashing/helpers.ts +8 -0
  625. package/src/slashing/tally.ts +8 -2
  626. package/src/slashing/types.ts +14 -0
  627. package/src/stats/stats.ts +0 -2
  628. package/src/tests/factories.ts +32 -43
  629. package/src/tests/jest.ts +1 -1
  630. package/src/tests/mocks.ts +90 -55
  631. package/src/timetable/index.ts +66 -0
  632. package/src/trees/public_data_leaf.ts +11 -5
  633. package/src/tx/block_header.ts +12 -4
  634. package/src/tx/global_variables.ts +3 -3
  635. package/src/tx/indexed_tx_effect.ts +3 -2
  636. package/src/tx/private_execution_result.ts +1 -1
  637. package/src/tx/profiling.ts +51 -9
  638. package/src/tx/protocol_contracts.ts +2 -2
  639. package/src/tx/public_simulation_output.ts +4 -0
  640. package/src/tx/tx.ts +8 -9
  641. package/src/tx/tx_effect.ts +0 -9
  642. package/src/tx/tx_receipt.ts +85 -18
  643. package/src/tx/tx_request.ts +2 -2
  644. package/src/tx/validator/empty_validator.ts +1 -1
  645. package/src/tx/validator/error_texts.ts +4 -1
  646. package/src/tx/validator/tx_validator.ts +1 -1
  647. package/src/update-checker/index.ts +2 -1
  648. package/src/update-checker/package_version.ts +17 -0
  649. package/src/update-checker/version_checker.ts +65 -0
  650. package/src/validators/schemas.ts +8 -1
  651. package/src/validators/types.ts +5 -4
  652. package/src/zkpassport/index.ts +11 -12
  653. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  654. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  655. package/dest/block/l2_block_code_to_purge.js +0 -55
  656. package/dest/block/l2_block_header.d.ts +0 -94
  657. package/dest/block/l2_block_header.d.ts.map +0 -1
  658. package/dest/block/l2_block_header.js +0 -160
  659. package/dest/block/l2_block_new.d.ts +0 -134
  660. package/dest/block/l2_block_new.d.ts.map +0 -1
  661. package/dest/block/l2_block_new.js +0 -155
  662. package/dest/contract/contract_class_metadata.d.ts +0 -8
  663. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  664. package/dest/contract/contract_class_metadata.js +0 -1
  665. package/dest/contract/contract_metadata.d.ts +0 -7
  666. package/dest/contract/contract_metadata.d.ts.map +0 -1
  667. package/dest/contract/contract_metadata.js +0 -1
  668. package/dest/database-version/index.d.ts +0 -2
  669. package/dest/database-version/index.d.ts.map +0 -1
  670. package/dest/database-version/index.js +0 -1
  671. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  672. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  673. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  674. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  675. package/dest/note/notes_filter.d.ts +0 -27
  676. package/dest/note/notes_filter.d.ts.map +0 -1
  677. package/dest/note/notes_filter.js +0 -11
  678. package/dest/update-checker/update-checker.d.ts +0 -49
  679. package/dest/update-checker/update-checker.d.ts.map +0 -1
  680. package/dest/update-checker/update-checker.js +0 -130
  681. package/src/block/l2_block_code_to_purge.ts +0 -80
  682. package/src/block/l2_block_header.ts +0 -255
  683. package/src/block/l2_block_new.ts +0 -211
  684. package/src/contract/contract_class_metadata.ts +0 -8
  685. package/src/contract/contract_metadata.ts +0 -7
  686. package/src/database-version/index.ts +0 -1
  687. package/src/note/notes_filter.ts +0 -38
  688. package/src/update-checker/update-checker.ts +0 -166
@@ -1,17 +1,28 @@
1
1
  import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
2
+ import {
3
+ BlockNumber,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ IndexWithinCheckpoint,
7
+ SlotNumber,
8
+ } from '@aztec/foundation/branded-types';
3
9
  import { sum } from '@aztec/foundation/collection';
4
10
  import { Fr } from '@aztec/foundation/curves/bn254';
5
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
11
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
6
12
  import type { FieldsOf } from '@aztec/foundation/types';
7
13
 
8
14
  import { z } from 'zod';
9
15
 
10
- import { L2BlockNew } from '../block/l2_block_new.js';
16
+ import { L2Block } from '../block/l2_block.js';
17
+ import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
18
+ import { computeCheckpointOutHash } from '../messaging/out_hash.js';
11
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
+ import { schemas } from '../schemas/schemas.js';
12
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
22
  import type { CheckpointInfo } from './checkpoint_info.js';
14
23
 
24
+ type FieldsOfCheckpoint = Omit<FieldsOf<Checkpoint>, 'slot'>;
25
+
15
26
  export class Checkpoint {
16
27
  constructor(
17
28
  /** Snapshot of archive tree after the checkpoint is added. */
@@ -19,42 +30,59 @@ export class Checkpoint {
19
30
  /** Header of the checkpoint. */
20
31
  public header: CheckpointHeader,
21
32
  /** L2 blocks in the checkpoint. */
22
- public blocks: L2BlockNew[],
33
+ public blocks: L2Block[],
23
34
  /** Number of the checkpoint. */
24
35
  public number: CheckpointNumber,
36
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
37
+ public feeAssetPriceModifier: bigint = 0n,
25
38
  ) {}
26
39
 
40
+ get slot(): SlotNumber {
41
+ return this.header.slotNumber;
42
+ }
43
+
27
44
  static get schema() {
28
45
  return z
29
46
  .object({
30
47
  archive: AppendOnlyTreeSnapshot.schema,
31
48
  header: CheckpointHeader.schema,
32
- blocks: z.array(L2BlockNew.schema),
49
+ blocks: z.array(L2Block.schema),
33
50
  number: CheckpointNumberSchema,
51
+ feeAssetPriceModifier: schemas.BigInt,
34
52
  })
35
- .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
53
+ .transform(
54
+ ({ archive, header, blocks, number, feeAssetPriceModifier }) =>
55
+ new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier),
56
+ );
36
57
  }
37
58
 
38
- static from(fields: FieldsOf<Checkpoint>) {
59
+ static from(fields: FieldsOfCheckpoint) {
39
60
  return new Checkpoint(...Checkpoint.getFields(fields));
40
61
  }
41
62
 
42
- static getFields(fields: FieldsOf<Checkpoint>) {
43
- return [fields.archive, fields.header, fields.blocks, fields.number] as const;
63
+ static getFields(fields: FieldsOfCheckpoint) {
64
+ return [fields.archive, fields.header, fields.blocks, fields.number, fields.feeAssetPriceModifier] as const;
44
65
  }
45
66
 
46
67
  static fromBuffer(buf: Buffer | BufferReader) {
47
68
  const reader = BufferReader.asReader(buf);
48
- return new Checkpoint(
49
- reader.readObject(AppendOnlyTreeSnapshot),
50
- reader.readObject(CheckpointHeader),
51
- reader.readVector(L2BlockNew),
52
- CheckpointNumber(reader.readNumber()),
53
- );
69
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
70
+ const header = reader.readObject(CheckpointHeader);
71
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
72
+ const number = CheckpointNumber(reader.readNumber());
73
+ const feeAssetPriceModifier = reader.readInt256();
74
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
54
75
  }
55
76
 
56
77
  public toBuffer() {
57
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
78
+ return serializeToBuffer(
79
+ this.archive,
80
+ this.header,
81
+ this.blocks.length,
82
+ this.blocks,
83
+ this.number,
84
+ serializeSignedBigInt(this.feeAssetPriceModifier),
85
+ );
58
86
  }
59
87
 
60
88
  public toBlobFields(): Fr[] {
@@ -66,6 +94,16 @@ export class Checkpoint {
66
94
  return this.header.hash();
67
95
  }
68
96
 
97
+ /**
98
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
99
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
100
+ * checkpoints up to and including this one in the epoch.
101
+ */
102
+ public getCheckpointOutHash(): Fr {
103
+ const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
104
+ return computeCheckpointOutHash(msgs);
105
+ }
106
+
69
107
  public getState() {
70
108
  return this.blocks.at(-1)!.header.state;
71
109
  }
@@ -107,23 +145,25 @@ export class Checkpoint {
107
145
  numBlocks = 1,
108
146
  startBlockNumber = 1,
109
147
  previousArchive,
148
+ feeAssetPriceModifier = 0n,
110
149
  ...options
111
150
  }: {
112
151
  numBlocks?: number;
113
152
  startBlockNumber?: number;
114
153
  previousArchive?: AppendOnlyTreeSnapshot;
154
+ feeAssetPriceModifier?: bigint;
115
155
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
116
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
156
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
117
157
  ) {
118
158
  const header = CheckpointHeader.random(options);
119
159
 
120
160
  // Create blocks sequentially to chain archive roots properly.
121
161
  // Each block's header.lastArchive must equal the previous block's archive.
122
- const blocks: L2BlockNew[] = [];
162
+ const blocks: L2Block[] = [];
123
163
  let lastArchive = previousArchive;
124
164
  for (let i = 0; i < numBlocks; i++) {
125
- const block = await L2BlockNew.random(BlockNumber(startBlockNumber + i), {
126
- indexWithinCheckpoint: i,
165
+ const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
166
+ indexWithinCheckpoint: IndexWithinCheckpoint(i),
127
167
  ...options,
128
168
  ...(lastArchive ? { lastArchive } : {}),
129
169
  });
@@ -131,6 +171,6 @@ export class Checkpoint {
131
171
  blocks.push(block);
132
172
  }
133
173
 
134
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
174
+ return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber, feeAssetPriceModifier);
135
175
  }
136
176
  }
@@ -0,0 +1,51 @@
1
+ import {
2
+ BlockNumber,
3
+ BlockNumberSchema,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ } from '@aztec/foundation/branded-types';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { schemas } from '@aztec/foundation/schemas';
9
+
10
+ import { z } from 'zod';
11
+
12
+ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
13
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
+ import { L1PublishedData } from './published_checkpoint.js';
16
+
17
+ /** Lightweight checkpoint metadata without full block data. */
18
+ export type CheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ archive: AppendOnlyTreeSnapshot;
22
+ checkpointOutHash: Fr;
23
+ startBlock: BlockNumber;
24
+ blockCount: number;
25
+ attestations: CommitteeAttestation[];
26
+ l1: L1PublishedData;
27
+ };
28
+
29
+ export const CheckpointDataSchema = z
30
+ .object({
31
+ checkpointNumber: CheckpointNumberSchema,
32
+ header: CheckpointHeader.schema,
33
+ archive: AppendOnlyTreeSnapshot.schema,
34
+ checkpointOutHash: schemas.Fr,
35
+ startBlock: BlockNumberSchema,
36
+ blockCount: schemas.Integer,
37
+ attestations: z.array(CommitteeAttestation.schema),
38
+ l1: L1PublishedData.schema,
39
+ })
40
+ .transform(
41
+ (obj): CheckpointData => ({
42
+ checkpointNumber: obj.checkpointNumber,
43
+ header: obj.header,
44
+ archive: obj.archive,
45
+ checkpointOutHash: obj.checkpointOutHash,
46
+ startBlock: obj.startBlock,
47
+ blockCount: obj.blockCount,
48
+ attestations: obj.attestations,
49
+ l1: obj.l1,
50
+ }),
51
+ );
@@ -1,3 +1,4 @@
1
1
  export * from './checkpoint.js';
2
+ export * from './checkpoint_data.js';
2
3
  export * from './checkpoint_info.js';
3
4
  export * from './published_checkpoint.js';
@@ -8,6 +8,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
8
8
  import { z } from 'zod';
9
9
 
10
10
  import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
11
+ import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
11
12
  import { Checkpoint } from './checkpoint.js';
12
13
 
13
14
  export class L1PublishedData {
@@ -42,7 +43,7 @@ export class L1PublishedData {
42
43
  static fromBuffer(bufferOrReader: Buffer | BufferReader): L1PublishedData {
43
44
  const reader = BufferReader.asReader(bufferOrReader);
44
45
  const l1BlockNumber = reader.readBigInt();
45
- const l1BlockHash = reader.readString();
46
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
46
47
  const l1Timestamp = reader.readBigInt();
47
48
  return new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash);
48
49
  }
@@ -54,9 +55,11 @@ export class L1PublishedData {
54
55
 
55
56
  export class PublishedCheckpoint {
56
57
  constructor(
58
+ /** The checkpoint itself. */
57
59
  public checkpoint: Checkpoint,
60
+ /** Info on when this checkpoint was published on L1. */
58
61
  public l1: L1PublishedData,
59
- // The attestations for the last block in the checkpoint.
62
+ /** The attestations for the last block in the checkpoint. */
60
63
  public attestations: CommitteeAttestation[],
61
64
  ) {}
62
65
 
@@ -82,9 +85,9 @@ export class PublishedCheckpoint {
82
85
  const reader = BufferReader.asReader(bufferOrReader);
83
86
  const checkpoint = reader.readObject(Checkpoint);
84
87
  const l1BlockNumber = reader.readBigInt();
85
- const l1BlockHash = reader.readString();
88
+ const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
86
89
  const l1Timestamp = reader.readBigInt();
87
- const attestations = reader.readVector(CommitteeAttestation);
90
+ const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
88
91
  return new PublishedCheckpoint(
89
92
  checkpoint,
90
93
  new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),
@@ -1,2 +1,3 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
+ export * from './sequencer-config.js';
@@ -21,7 +21,7 @@ export const nodeRpcConfigMappings: ConfigMappingsType<NodeRPCConfig> = {
21
21
  rpcMaxBodySize: {
22
22
  env: 'RPC_MAX_BODY_SIZE',
23
23
  description: 'Maximum allowed batch size for JSON RPC batch requests.',
24
- defaultValue: '50mb',
24
+ defaultValue: '1mb',
25
25
  },
26
26
  };
27
27
 
@@ -0,0 +1,37 @@
1
+ import { type ConfigMappingsType, numberConfigHelper } from '@aztec/foundation/config';
2
+
3
+ import type { SequencerConfig } from '../interfaces/configs.js';
4
+
5
+ /** Default maximum number of transactions per block. */
6
+ export const DEFAULT_MAX_TXS_PER_BLOCK = 32;
7
+
8
+ /**
9
+ * Partial sequencer config mappings for fields that need to be shared across packages.
10
+ * The full sequencer config mappings remain in sequencer-client, but shared fields
11
+ * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
12
+ * to avoid duplication.
13
+ */
14
+ export const sharedSequencerConfigMappings: ConfigMappingsType<
15
+ Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>
16
+ > = {
17
+ blockDurationMs: {
18
+ env: 'SEQ_BLOCK_DURATION_MS',
19
+ description:
20
+ 'Duration per block in milliseconds when building multiple blocks per slot. ' +
21
+ 'If undefined (default), builds a single block per slot using the full slot duration.',
22
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
23
+ },
24
+ expectedBlockProposalsPerSlot: {
25
+ env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
26
+ description:
27
+ 'Expected number of block proposals per slot for P2P peer scoring. ' +
28
+ '0 (default) disables block proposal scoring. Set to a positive value to enable.',
29
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : 0),
30
+ defaultValue: 0,
31
+ },
32
+ maxTxsPerBlock: {
33
+ env: 'SEQ_MAX_TX_PER_BLOCK',
34
+ description: 'The maximum number of txs to include in a block.',
35
+ ...numberConfigHelper(DEFAULT_MAX_TXS_PER_BLOCK),
36
+ },
37
+ };
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
 
@@ -44,7 +44,7 @@ export async function computePartialAddress(
44
44
 
45
45
  return poseidon2HashWithSeparator(
46
46
  [instance.originalContractClassId, saltedInitializationHash],
47
- GeneratorIndex.PARTIAL_ADDRESS,
47
+ DomainSeparator.PARTIAL_ADDRESS,
48
48
  );
49
49
  }
50
50
 
@@ -57,7 +57,7 @@ export function computeSaltedInitializationHash(
57
57
  ): Promise<Fr> {
58
58
  return poseidon2HashWithSeparator(
59
59
  [instance.salt, instance.initializationHash, instance.deployer],
60
- GeneratorIndex.PARTIAL_ADDRESS,
60
+ DomainSeparator.PARTIAL_ADDRESS,
61
61
  );
62
62
  }
63
63
 
@@ -87,5 +87,5 @@ export async function computeInitializationHashFromEncodedArgs(
87
87
  encodedArgs: Fr[],
88
88
  ): Promise<Fr> {
89
89
  const argsHash = await computeVarArgsHash(encodedArgs);
90
- return poseidon2HashWithSeparator([initFn, argsHash], GeneratorIndex.CONSTRUCTOR);
90
+ return poseidon2HashWithSeparator([initFn, argsHash], DomainSeparator.INITIALIZER);
91
91
  }
@@ -8,7 +8,7 @@ import { type ContractClassIdPreimage, computeContractClassIdWithPreimage } from
8
8
  import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
9
9
 
10
10
  /** Contract artifact including its artifact hash */
11
- type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
11
+ export type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
12
12
 
13
13
  const cmpFunctionArtifacts = <T extends { selector: FunctionSelector }>(a: T, b: T) =>
14
14
  a.selector.toField().cmp(b.selector.toField());
@@ -35,8 +35,8 @@ export async function getContractClassFromArtifact(
35
35
 
36
36
  privateArtifactFunctions.sort(cmpFunctionArtifacts);
37
37
 
38
- const contractClass: ContractClass = {
39
- version: 1,
38
+ const contractClass = {
39
+ version: 1 as const,
40
40
  artifactHash,
41
41
  packedBytecode,
42
42
  privateFunctions: privateArtifactFunctions,
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { DomainSeparator, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
 
@@ -13,7 +13,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
13
13
  *
14
14
  * ```
15
15
  * version = 1
16
- * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__FUNCTION_LEAF))
16
+ * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF))
17
17
  * private_functions_root = merkleize(private_function_leaves)
18
18
  * bytecode_commitment = calculate_commitment(packed_bytecode)
19
19
  * contract_class_id = pedersen([version, artifact_hash, private_functions_root, bytecode_commitment], GENERATOR__CLASS_IDENTIFIER)
@@ -40,7 +40,7 @@ export async function computeContractClassIdWithPreimage(
40
40
  : await computePublicBytecodeCommitment(contractClass.packedBytecode);
41
41
  const id = await poseidon2HashWithSeparator(
42
42
  [artifactHash, privateFunctionsRoot, publicBytecodeCommitment],
43
- GeneratorIndex.CONTRACT_CLASS_ID,
43
+ DomainSeparator.CONTRACT_CLASS_ID,
44
44
  );
45
45
  return { id, artifactHash, privateFunctionsRoot, publicBytecodeCommitment };
46
46
  }
@@ -60,7 +60,7 @@ export type ContractClassIdPreimage = {
60
60
  };
61
61
 
62
62
  export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
63
- // Encode the buffer into field elements (chunked into 32 bytes each)
63
+ // Encode the buffer into field elements (chunked into 31 bytes each)
64
64
  // The first element is the length of the bytecode (in bytes)
65
65
  const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(
66
66
  packedBytecode,
@@ -72,5 +72,6 @@ export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
72
72
 
73
73
  // NOTE: hash the bytecode here only up to the actual length of the bytecode.
74
74
  // We do not hash the entire max bytecode length!
75
- return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
75
+ const sep = BigInt(DomainSeparator.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
76
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
76
77
  }
@@ -1,11 +1,9 @@
1
1
  export * from './artifact_hash.js';
2
2
  export * from './contract_address.js';
3
3
  export * from './contract_class.js';
4
- export * from './contract_class_metadata.js';
5
4
  export * from './contract_class_id.js';
6
5
  export * from './contract_deployment_data.js';
7
6
  export * from './contract_instance.js';
8
- export * from './contract_metadata.js';
9
7
  export * from './contract_instance_update.js';
10
8
  export * from './private_function.js';
11
9
  export * from './private_function_membership_proof.js';
@@ -19,6 +19,8 @@ export interface NodeInfo {
19
19
  l1ContractAddresses: L1ContractAddresses;
20
20
  /** Protocol contract addresses */
21
21
  protocolContractAddresses: ProtocolContractAddresses;
22
+ /** Whether the node requires real proofs for transaction submission. */
23
+ realProofs: boolean;
22
24
  }
23
25
 
24
26
  export const NodeInfoSchema: ZodFor<NodeInfo> = z
@@ -29,5 +31,6 @@ export const NodeInfoSchema: ZodFor<NodeInfo> = z
29
31
  enr: z.string().optional(),
30
32
  l1ContractAddresses: L1ContractAddressesSchema,
31
33
  protocolContractAddresses: ProtocolContractAddressesSchema,
34
+ realProofs: z.boolean(),
32
35
  })
33
36
  .transform(obj => ({ enr: undefined, ...obj }));
@@ -1,5 +1,4 @@
1
- import { FUNCTION_TREE_HEIGHT, GeneratorIndex } from '@aztec/constants';
2
- import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
1
+ import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
3
2
  import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
5
4
  import { type MerkleTree, MerkleTreeCalculator } from '@aztec/foundation/trees';
@@ -32,13 +31,13 @@ function computePrivateFunctionLeaves(fns: PrivateFunction[]): Promise<Buffer[]>
32
31
 
33
32
  /** Returns the leaf for a given private function. */
34
33
  export async function computePrivateFunctionLeaf(fn: PrivateFunction): Promise<Buffer> {
35
- return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash], GeneratorIndex.FUNCTION_LEAF)).toBuffer();
34
+ return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash], DomainSeparator.PRIVATE_FUNCTION_LEAF)).toBuffer();
36
35
  }
37
36
 
38
37
  async function getPrivateFunctionTreeCalculator(): Promise<MerkleTreeCalculator> {
39
38
  if (!privateFunctionTreeCalculator) {
40
39
  const functionTreeZeroLeaf = (
41
- await pedersenHash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))
40
+ await poseidon2Hash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))
42
41
  ).toBuffer() as Buffer<ArrayBuffer>;
43
42
  privateFunctionTreeCalculator = await MerkleTreeCalculator.create(
44
43
  FUNCTION_TREE_HEIGHT,
@@ -99,7 +99,7 @@ export async function createPrivateFunctionMembershipProof(
99
99
  * contract_class = db.get_contract_class(contract_class_id)
100
100
  *
101
101
  * // Compute function leaf and assert it belongs to the private functions tree
102
- * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__FUNCTION_LEAF)
102
+ * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF)
103
103
  * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
104
104
  * assert computed_private_function_tree_root == contract_class.private_functions_root
105
105
  *
@@ -0,0 +1,87 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
3
+
4
+ import { z } from 'zod';
5
+
6
+ /**
7
+ * Symbol for Node.js custom inspect. Using Symbol.for() is the documented way to
8
+ * reference this without importing node:util. In browsers, objects with this symbol
9
+ * simply won't have custom inspect behavior (which is fine).
10
+ * @see https://nodejs.org/api/util.html#utilinspectcustom
11
+ */
12
+ const inspectCustomSymbol = Symbol.for('nodejs.util.inspect.custom');
13
+
14
+ /**
15
+ * Represents a version record for storing in a version file.
16
+ */
17
+ export class DatabaseVersion {
18
+ constructor(
19
+ /** The version of the data on disk. Used to perform upgrades */
20
+ public readonly schemaVersion: number,
21
+ /** The rollup the data pertains to */
22
+ public readonly rollupAddress: EthAddress,
23
+ ) {}
24
+
25
+ public toBuffer(): Buffer {
26
+ return Buffer.from(jsonStringify(this));
27
+ }
28
+
29
+ public static fromBuffer(buf: Buffer): DatabaseVersion {
30
+ try {
31
+ return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
32
+ } catch (err) {
33
+ throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Compares two versions. If the rollups addresses are different then it returns undefined
39
+ */
40
+ public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
41
+ if (this.rollupAddress.equals(other.rollupAddress)) {
42
+ if (this.schemaVersion < other.schemaVersion) {
43
+ return -1;
44
+ } else if (this.schemaVersion > other.schemaVersion) {
45
+ return 1;
46
+ } else {
47
+ return 0;
48
+ }
49
+ }
50
+ return undefined;
51
+ }
52
+
53
+ /**
54
+ * Checks if two versions exactly match
55
+ */
56
+ public equals(other: DatabaseVersion): boolean {
57
+ return this.cmp(other) === 0;
58
+ }
59
+
60
+ /**
61
+ * Returns the schema for this class
62
+ */
63
+ static get schema() {
64
+ return z
65
+ .object({
66
+ schemaVersion: z.number(),
67
+ rollupAddress: EthAddress.schema,
68
+ })
69
+ .transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
70
+ }
71
+
72
+ /** Allows for better introspection in Node.js console. Ignored in browser envs. */
73
+ public [inspectCustomSymbol](): string {
74
+ return this.toString();
75
+ }
76
+
77
+ public toString(): string {
78
+ return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
79
+ }
80
+
81
+ /**
82
+ * Returns an empty instance
83
+ */
84
+ static empty() {
85
+ return new DatabaseVersion(0, EthAddress.ZERO);
86
+ }
87
+ }
@@ -1,86 +1,10 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
- import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
3
2
  import { type Logger, createLogger } from '@aztec/foundation/log';
4
3
 
5
4
  import fs from 'fs/promises';
6
- import { inspect } from 'node:util';
7
5
  import { join } from 'path';
8
- import { z } from 'zod';
9
6
 
10
- /**
11
- * Represents a version record for storing in a version file.
12
- */
13
- export class DatabaseVersion {
14
- constructor(
15
- /** The version of the data on disk. Used to perform upgrades */
16
- public readonly schemaVersion: number,
17
- /** The rollup the data pertains to */
18
- public readonly rollupAddress: EthAddress,
19
- ) {}
20
-
21
- public toBuffer(): Buffer {
22
- return Buffer.from(jsonStringify(this));
23
- }
24
-
25
- public static fromBuffer(buf: Buffer): DatabaseVersion {
26
- try {
27
- return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
28
- } catch (err) {
29
- throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
30
- }
31
- }
32
-
33
- /**
34
- * Compares two versions. If the rollups addresses are different then it returns undefined
35
- */
36
- public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
37
- if (this.rollupAddress.equals(other.rollupAddress)) {
38
- if (this.schemaVersion < other.schemaVersion) {
39
- return -1;
40
- } else if (this.schemaVersion > other.schemaVersion) {
41
- return 1;
42
- } else {
43
- return 0;
44
- }
45
- }
46
- return undefined;
47
- }
48
-
49
- /**
50
- * Checks if two versions exactly match
51
- */
52
- public equals(other: DatabaseVersion): boolean {
53
- return this.cmp(other) === 0;
54
- }
55
-
56
- /**
57
- * Returns the schema for this class
58
- */
59
- static get schema() {
60
- return z
61
- .object({
62
- schemaVersion: z.number(),
63
- rollupAddress: EthAddress.schema,
64
- })
65
- .transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
66
- }
67
-
68
- /** Allows for better introspection. */
69
- public [inspect.custom](): string {
70
- return this.toString();
71
- }
72
-
73
- public toString(): string {
74
- return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
75
- }
76
-
77
- /**
78
- * Returns an empty instance
79
- */
80
- static empty() {
81
- return new DatabaseVersion(0, EthAddress.ZERO);
82
- }
83
- }
7
+ import { DatabaseVersion } from './database_version.js';
84
8
 
85
9
  export type DatabaseVersionManagerFs = Pick<typeof fs, 'readFile' | 'writeFile' | 'rm' | 'mkdir'>;
86
10