@aztec/stdlib 0.0.1-commit.0c875d939 → 0.0.1-commit.0ec55a70b

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 (687) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/authorization_selector.d.ts +3 -6
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/decoder.d.ts +6 -45
  10. package/dest/abi/decoder.d.ts.map +1 -1
  11. package/dest/abi/decoder.js +17 -70
  12. package/dest/abi/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +64 -7
  15. package/dest/abi/event_metadata_definition.d.ts +3 -1
  16. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  17. package/dest/abi/event_metadata_definition.js +1 -1
  18. package/dest/abi/event_selector.d.ts +3 -6
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_selector.d.ts +3 -6
  21. package/dest/abi/function_selector.d.ts.map +1 -1
  22. package/dest/abi/function_selector.js +2 -4
  23. package/dest/abi/function_signature_decoder.d.ts +43 -0
  24. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  25. package/dest/abi/function_signature_decoder.js +66 -0
  26. package/dest/abi/index.d.ts +2 -1
  27. package/dest/abi/index.d.ts.map +1 -1
  28. package/dest/abi/index.js +1 -0
  29. package/dest/abi/note_selector.d.ts +3 -6
  30. package/dest/abi/note_selector.d.ts.map +1 -1
  31. package/dest/abi/note_selector.js +1 -3
  32. package/dest/abi/selector.d.ts +2 -2
  33. package/dest/abi/selector.d.ts.map +1 -1
  34. package/dest/abi/selector.js +1 -1
  35. package/dest/abi/utils.d.ts +14 -1
  36. package/dest/abi/utils.d.ts.map +1 -1
  37. package/dest/abi/utils.js +15 -0
  38. package/dest/auth_witness/auth_witness.js +3 -3
  39. package/dest/avm/avm_proving_request.d.ts +166 -166
  40. package/dest/avm/revert_code.d.ts +9 -4
  41. package/dest/avm/revert_code.d.ts.map +1 -1
  42. package/dest/avm/revert_code.js +16 -21
  43. package/dest/aztec-address/index.d.ts +3 -6
  44. package/dest/aztec-address/index.d.ts.map +1 -1
  45. package/dest/aztec-address/index.js +2 -4
  46. package/dest/block/attestation_info.d.ts +3 -2
  47. package/dest/block/attestation_info.d.ts.map +1 -1
  48. package/dest/block/attestation_info.js +7 -5
  49. package/dest/block/block_data.d.ts +341 -0
  50. package/dest/block/block_data.d.ts.map +1 -0
  51. package/dest/block/block_data.js +26 -0
  52. package/dest/block/block_hash.d.ts +11 -10
  53. package/dest/block/block_hash.d.ts.map +1 -1
  54. package/dest/block/block_hash.js +10 -9
  55. package/dest/block/block_parameter.d.ts +30 -3
  56. package/dest/block/block_parameter.d.ts.map +1 -1
  57. package/dest/block/block_parameter.js +36 -2
  58. package/dest/block/index.d.ts +2 -1
  59. package/dest/block/index.d.ts.map +1 -1
  60. package/dest/block/index.js +1 -0
  61. package/dest/block/l2_block.d.ts +9 -1
  62. package/dest/block/l2_block.d.ts.map +1 -1
  63. package/dest/block/l2_block.js +12 -2
  64. package/dest/block/l2_block_info.d.ts +6 -5
  65. package/dest/block/l2_block_info.d.ts.map +1 -1
  66. package/dest/block/l2_block_info.js +6 -5
  67. package/dest/block/l2_block_source.d.ts +149 -10
  68. package/dest/block/l2_block_source.d.ts.map +1 -1
  69. package/dest/block/l2_block_source.js +1 -0
  70. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  71. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  72. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  73. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  74. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  75. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  76. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  77. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  78. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  79. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  80. package/dest/block/proposal/attestations_and_signers.js +26 -18
  81. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  82. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  83. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  84. package/dest/checkpoint/checkpoint.d.ts +13 -1
  85. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  86. package/dest/checkpoint/checkpoint.js +23 -9
  87. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  88. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  89. package/dest/checkpoint/checkpoint_data.js +38 -0
  90. package/dest/checkpoint/index.d.ts +3 -1
  91. package/dest/checkpoint/index.d.ts.map +1 -1
  92. package/dest/checkpoint/index.js +2 -0
  93. package/dest/checkpoint/published_checkpoint.d.ts +11 -2
  94. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  95. package/dest/checkpoint/published_checkpoint.js +1 -2
  96. package/dest/checkpoint/validate.d.ts +36 -0
  97. package/dest/checkpoint/validate.d.ts.map +1 -0
  98. package/dest/checkpoint/validate.js +120 -0
  99. package/dest/config/chain-config.d.ts +2 -2
  100. package/dest/config/chain-config.d.ts.map +1 -1
  101. package/dest/config/chain-config.js +9 -3
  102. package/dest/config/index.d.ts +2 -1
  103. package/dest/config/index.d.ts.map +1 -1
  104. package/dest/config/index.js +1 -0
  105. package/dest/config/pipelining-config.d.ts +19 -0
  106. package/dest/config/pipelining-config.d.ts.map +1 -0
  107. package/dest/config/pipelining-config.js +18 -0
  108. package/dest/config/sequencer-config.d.ts +7 -3
  109. package/dest/config/sequencer-config.d.ts.map +1 -1
  110. package/dest/config/sequencer-config.js +27 -1
  111. package/dest/contract/contract_address.d.ts +3 -3
  112. package/dest/contract/contract_address.js +7 -7
  113. package/dest/contract/contract_class.d.ts +2 -3
  114. package/dest/contract/contract_class.d.ts.map +1 -1
  115. package/dest/contract/contract_class_id.d.ts +2 -2
  116. package/dest/contract/contract_class_id.js +5 -5
  117. package/dest/contract/index.d.ts +1 -3
  118. package/dest/contract/index.d.ts.map +1 -1
  119. package/dest/contract/index.js +0 -2
  120. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  121. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  122. package/dest/contract/interfaces/contract_class.js +1 -28
  123. package/dest/contract/private_function.d.ts +1 -1
  124. package/dest/contract/private_function.d.ts.map +1 -1
  125. package/dest/contract/private_function.js +4 -6
  126. package/dest/epoch-helpers/index.d.ts +11 -1
  127. package/dest/epoch-helpers/index.d.ts.map +1 -1
  128. package/dest/epoch-helpers/index.js +16 -2
  129. package/dest/file-store/factory.d.ts +4 -3
  130. package/dest/file-store/factory.d.ts.map +1 -1
  131. package/dest/file-store/factory.js +2 -2
  132. package/dest/file-store/http.d.ts +9 -2
  133. package/dest/file-store/http.d.ts.map +1 -1
  134. package/dest/file-store/http.js +20 -9
  135. package/dest/file-store/index.d.ts +2 -1
  136. package/dest/file-store/index.d.ts.map +1 -1
  137. package/dest/file-store/local.d.ts +3 -3
  138. package/dest/file-store/local.d.ts.map +1 -1
  139. package/dest/file-store/local.js +13 -4
  140. package/dest/file-store/s3.d.ts +1 -1
  141. package/dest/file-store/s3.d.ts.map +1 -1
  142. package/dest/file-store/s3.js +11 -3
  143. package/dest/gas/fee_math.d.ts +49 -0
  144. package/dest/gas/fee_math.d.ts.map +1 -0
  145. package/dest/gas/fee_math.js +80 -0
  146. package/dest/gas/gas_fees.d.ts +5 -1
  147. package/dest/gas/gas_fees.d.ts.map +1 -1
  148. package/dest/gas/gas_fees.js +13 -1
  149. package/dest/gas/gas_settings.d.ts +40 -3
  150. package/dest/gas/gas_settings.d.ts.map +1 -1
  151. package/dest/gas/gas_settings.js +50 -6
  152. package/dest/gas/index.d.ts +2 -1
  153. package/dest/gas/index.d.ts.map +1 -1
  154. package/dest/gas/index.js +1 -0
  155. package/dest/ha-signing/config.d.ts +136 -0
  156. package/dest/ha-signing/config.d.ts.map +1 -0
  157. package/dest/ha-signing/config.js +98 -0
  158. package/dest/ha-signing/index.d.ts +4 -0
  159. package/dest/ha-signing/index.d.ts.map +1 -0
  160. package/dest/ha-signing/index.js +3 -0
  161. package/dest/ha-signing/local_config.d.ts +63 -0
  162. package/dest/ha-signing/local_config.d.ts.map +1 -0
  163. package/dest/ha-signing/local_config.js +24 -0
  164. package/dest/ha-signing/types.d.ts +90 -0
  165. package/dest/ha-signing/types.d.ts.map +1 -0
  166. package/dest/ha-signing/types.js +39 -0
  167. package/dest/hash/hash.d.ts +34 -1
  168. package/dest/hash/hash.d.ts.map +1 -1
  169. package/dest/hash/hash.js +72 -11
  170. package/dest/hash/map_slot.js +2 -2
  171. package/dest/interfaces/allowed_element.d.ts +26 -20
  172. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  173. package/dest/interfaces/allowed_element.js +8 -8
  174. package/dest/interfaces/archiver.d.ts +11 -1
  175. package/dest/interfaces/archiver.d.ts.map +1 -1
  176. package/dest/interfaces/archiver.js +17 -3
  177. package/dest/interfaces/aztec-node-admin.d.ts +126 -47
  178. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  179. package/dest/interfaces/aztec-node-admin.js +14 -7
  180. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  181. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  182. package/dest/interfaces/aztec-node-debug.js +18 -0
  183. package/dest/interfaces/aztec-node.d.ts +59 -54
  184. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  185. package/dest/interfaces/aztec-node.js +23 -16
  186. package/dest/interfaces/block-builder.d.ts +38 -11
  187. package/dest/interfaces/block-builder.d.ts.map +1 -1
  188. package/dest/interfaces/block-builder.js +13 -6
  189. package/dest/interfaces/block_response.d.ts +156 -0
  190. package/dest/interfaces/block_response.d.ts.map +1 -0
  191. package/dest/interfaces/block_response.js +24 -0
  192. package/dest/interfaces/chain_tips.d.ts +304 -0
  193. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  194. package/dest/interfaces/chain_tips.js +11 -0
  195. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  196. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  197. package/dest/interfaces/checkpoint_parameter.js +20 -0
  198. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  199. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  200. package/dest/interfaces/checkpoint_response.js +26 -0
  201. package/dest/interfaces/client.d.ts +7 -1
  202. package/dest/interfaces/client.d.ts.map +1 -1
  203. package/dest/interfaces/client.js +6 -0
  204. package/dest/interfaces/configs.d.ts +87 -32
  205. package/dest/interfaces/configs.d.ts.map +1 -1
  206. package/dest/interfaces/configs.js +12 -3
  207. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  208. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  209. package/dest/interfaces/l1_publish_info.js +26 -0
  210. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  211. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  212. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  213. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  214. package/dest/interfaces/p2p.d.ts +3 -8
  215. package/dest/interfaces/p2p.d.ts.map +1 -1
  216. package/dest/interfaces/prover-client.d.ts +6 -1
  217. package/dest/interfaces/prover-client.d.ts.map +1 -1
  218. package/dest/interfaces/prover-client.js +7 -4
  219. package/dest/interfaces/proving-job.d.ts +34 -34
  220. package/dest/interfaces/server.d.ts +6 -1
  221. package/dest/interfaces/server.d.ts.map +1 -1
  222. package/dest/interfaces/server.js +5 -0
  223. package/dest/interfaces/slasher.d.ts +1 -10
  224. package/dest/interfaces/slasher.d.ts.map +1 -1
  225. package/dest/interfaces/slasher.js +0 -2
  226. package/dest/interfaces/validator.d.ts +127 -64
  227. package/dest/interfaces/validator.d.ts.map +1 -1
  228. package/dest/interfaces/validator.js +10 -5
  229. package/dest/interfaces/world_state.d.ts +5 -4
  230. package/dest/interfaces/world_state.d.ts.map +1 -1
  231. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  232. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  233. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  234. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  235. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  236. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  237. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  238. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  239. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  240. package/dest/kernel/hints/index.d.ts +2 -2
  241. package/dest/kernel/hints/index.js +2 -2
  242. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  243. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  244. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  245. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  246. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  247. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  248. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  249. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  250. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  251. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  252. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  253. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  254. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  255. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  256. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  257. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  258. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  259. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  260. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  261. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  262. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  263. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  264. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  265. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  266. package/dest/kernel/private_validation_requests.d.ts +3 -3
  267. package/dest/kernel/private_validation_requests.js +9 -9
  268. package/dest/keys/derivation.js +8 -8
  269. package/dest/keys/key_types.d.ts +3 -3
  270. package/dest/keys/key_types.d.ts.map +1 -1
  271. package/dest/keys/public_keys.js +2 -2
  272. package/dest/keys/utils.js +5 -5
  273. package/dest/kv-store/config.d.ts +17 -0
  274. package/dest/kv-store/config.d.ts.map +1 -0
  275. package/dest/kv-store/config.js +26 -0
  276. package/dest/kv-store/index.d.ts +2 -0
  277. package/dest/kv-store/index.d.ts.map +1 -0
  278. package/dest/kv-store/index.js +1 -0
  279. package/dest/l1-contracts/index.d.ts +2 -2
  280. package/dest/l1-contracts/index.d.ts.map +1 -1
  281. package/dest/l1-contracts/index.js +1 -1
  282. package/dest/logs/debug_log_store.d.ts +30 -0
  283. package/dest/logs/debug_log_store.d.ts.map +1 -0
  284. package/dest/logs/debug_log_store.js +30 -0
  285. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  286. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  287. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  288. package/dest/logs/index.d.ts +4 -2
  289. package/dest/logs/index.d.ts.map +1 -1
  290. package/dest/logs/index.js +3 -1
  291. package/dest/logs/log_filter.d.ts +4 -1
  292. package/dest/logs/log_filter.d.ts.map +1 -1
  293. package/dest/logs/log_filter.js +2 -1
  294. package/dest/logs/log_id.d.ts +1 -1
  295. package/dest/logs/log_id.d.ts.map +1 -1
  296. package/dest/logs/log_id.js +1 -2
  297. package/dest/logs/message_context.d.ts +4 -7
  298. package/dest/logs/message_context.d.ts.map +1 -1
  299. package/dest/logs/message_context.js +23 -9
  300. package/dest/logs/pending_tagged_log.d.ts +2 -3
  301. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  302. package/dest/logs/pending_tagged_log.js +2 -2
  303. package/dest/logs/pre_tag.d.ts +16 -11
  304. package/dest/logs/pre_tag.d.ts.map +1 -1
  305. package/dest/logs/pre_tag.js +2 -2
  306. package/dest/logs/private_log.d.ts +2 -2
  307. package/dest/logs/private_log.d.ts.map +1 -1
  308. package/dest/logs/public_log.d.ts +4 -3
  309. package/dest/logs/public_log.d.ts.map +1 -1
  310. package/dest/logs/public_log.js +2 -1
  311. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  312. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  313. package/dest/logs/shared_secret_derivation.js +15 -9
  314. package/dest/logs/siloed_tag.d.ts +12 -9
  315. package/dest/logs/siloed_tag.d.ts.map +1 -1
  316. package/dest/logs/siloed_tag.js +15 -2
  317. package/dest/logs/tag.d.ts +5 -6
  318. package/dest/logs/tag.d.ts.map +1 -1
  319. package/dest/logs/tag.js +5 -1
  320. package/dest/logs/tagging_index_range.d.ts +40 -0
  321. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  322. package/dest/logs/tagging_index_range.js +8 -0
  323. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  324. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  325. package/dest/logs/tx_scoped_l2_log.js +7 -0
  326. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  327. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  328. package/dest/messaging/l1_to_l2_message.js +11 -13
  329. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  330. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  331. package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
  332. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  333. package/dest/messaging/l2_to_l1_membership.js +69 -26
  334. package/dest/noir/index.d.ts +3 -3
  335. package/dest/noir/index.d.ts.map +1 -1
  336. package/dest/note/note_dao.d.ts +1 -1
  337. package/dest/note/note_dao.d.ts.map +1 -1
  338. package/dest/note/note_dao.js +1 -4
  339. package/dest/p2p/attestation_utils.d.ts +11 -1
  340. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  341. package/dest/p2p/attestation_utils.js +45 -0
  342. package/dest/p2p/block_proposal.d.ts +23 -15
  343. package/dest/p2p/block_proposal.d.ts.map +1 -1
  344. package/dest/p2p/block_proposal.js +46 -43
  345. package/dest/p2p/checkpoint_attestation.d.ts +10 -8
  346. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  347. package/dest/p2p/checkpoint_attestation.js +17 -24
  348. package/dest/p2p/checkpoint_proposal.d.ts +21 -20
  349. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  350. package/dest/p2p/checkpoint_proposal.js +35 -62
  351. package/dest/p2p/client_type.d.ts +2 -5
  352. package/dest/p2p/client_type.d.ts.map +1 -1
  353. package/dest/p2p/client_type.js +0 -7
  354. package/dest/p2p/consensus_payload.d.ts +18 -7
  355. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  356. package/dest/p2p/consensus_payload.js +31 -19
  357. package/dest/p2p/gossipable.d.ts +4 -4
  358. package/dest/p2p/gossipable.d.ts.map +1 -1
  359. package/dest/p2p/index.d.ts +1 -2
  360. package/dest/p2p/index.d.ts.map +1 -1
  361. package/dest/p2p/index.js +0 -1
  362. package/dest/p2p/peer_error.d.ts +3 -1
  363. package/dest/p2p/peer_error.d.ts.map +1 -1
  364. package/dest/p2p/peer_error.js +5 -0
  365. package/dest/p2p/signature_utils.d.ts +28 -19
  366. package/dest/p2p/signature_utils.d.ts.map +1 -1
  367. package/dest/p2p/signature_utils.js +118 -21
  368. package/dest/p2p/signed_txs.d.ts +15 -13
  369. package/dest/p2p/signed_txs.d.ts.map +1 -1
  370. package/dest/p2p/signed_txs.js +26 -24
  371. package/dest/p2p/topic_type.d.ts +3 -4
  372. package/dest/p2p/topic_type.d.ts.map +1 -1
  373. package/dest/p2p/topic_type.js +7 -24
  374. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  375. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  376. package/dest/parity/parity_base_private_inputs.js +7 -5
  377. package/dest/parity/parity_public_inputs.d.ts +7 -3
  378. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  379. package/dest/parity/parity_public_inputs.js +6 -3
  380. package/dest/proofs/chonk_proof.d.ts +46 -2
  381. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  382. package/dest/proofs/chonk_proof.js +85 -10
  383. package/dest/rollup/block_headers_hash.d.ts +1 -1
  384. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  385. package/dest/rollup/block_headers_hash.js +8 -2
  386. package/dest/rollup/checkpoint_header.d.ts +2 -2
  387. package/dest/rollup/checkpoint_header.js +2 -2
  388. package/dest/slashing/index.d.ts +2 -3
  389. package/dest/slashing/index.d.ts.map +1 -1
  390. package/dest/slashing/index.js +1 -2
  391. package/dest/slashing/serialization.d.ts +2 -6
  392. package/dest/slashing/serialization.d.ts.map +1 -1
  393. package/dest/slashing/serialization.js +0 -60
  394. package/dest/slashing/types.d.ts +4 -90
  395. package/dest/slashing/types.d.ts.map +1 -1
  396. package/dest/slashing/types.js +0 -14
  397. package/dest/slashing/{tally.d.ts → votes.d.ts} +7 -2
  398. package/dest/slashing/votes.d.ts.map +1 -0
  399. package/dest/slashing/{tally.js → votes.js} +30 -2
  400. package/dest/tests/factories.d.ts +5 -10
  401. package/dest/tests/factories.d.ts.map +1 -1
  402. package/dest/tests/factories.js +35 -54
  403. package/dest/tests/mocks.d.ts +11 -3
  404. package/dest/tests/mocks.d.ts.map +1 -1
  405. package/dest/tests/mocks.js +59 -45
  406. package/dest/timetable/index.d.ts +51 -1
  407. package/dest/timetable/index.d.ts.map +1 -1
  408. package/dest/timetable/index.js +218 -14
  409. package/dest/trees/nullifier_leaf.d.ts +2 -1
  410. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  411. package/dest/trees/nullifier_leaf.js +3 -0
  412. package/dest/tx/block_header.d.ts +4 -2
  413. package/dest/tx/block_header.d.ts.map +1 -1
  414. package/dest/tx/block_header.js +7 -3
  415. package/dest/tx/capsule.d.ts +6 -2
  416. package/dest/tx/capsule.d.ts.map +1 -1
  417. package/dest/tx/capsule.js +9 -3
  418. package/dest/tx/fee_provider.d.ts +10 -0
  419. package/dest/tx/fee_provider.d.ts.map +1 -0
  420. package/dest/tx/fee_provider.js +1 -0
  421. package/dest/tx/global_variable_builder.d.ts +3 -4
  422. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  423. package/dest/tx/global_variables.d.ts +4 -4
  424. package/dest/tx/global_variables.d.ts.map +1 -1
  425. package/dest/tx/index.d.ts +2 -1
  426. package/dest/tx/index.d.ts.map +1 -1
  427. package/dest/tx/index.js +1 -0
  428. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  429. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  430. package/dest/tx/indexed_tx_effect.js +1 -2
  431. package/dest/tx/private_execution_result.d.ts +6 -6
  432. package/dest/tx/private_execution_result.d.ts.map +1 -1
  433. package/dest/tx/private_execution_result.js +6 -6
  434. package/dest/tx/profiling.d.ts +17 -5
  435. package/dest/tx/profiling.d.ts.map +1 -1
  436. package/dest/tx/profiling.js +19 -9
  437. package/dest/tx/protocol_contracts.d.ts +1 -1
  438. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  439. package/dest/tx/protocol_contracts.js +2 -2
  440. package/dest/tx/public_simulation_output.d.ts +4 -2
  441. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  442. package/dest/tx/public_simulation_output.js +7 -3
  443. package/dest/tx/simulated_tx.d.ts +116 -5
  444. package/dest/tx/simulated_tx.d.ts.map +1 -1
  445. package/dest/tx/simulated_tx.js +7 -4
  446. package/dest/tx/tx.d.ts +8 -7
  447. package/dest/tx/tx.d.ts.map +1 -1
  448. package/dest/tx/tx.js +18 -6
  449. package/dest/tx/tx_receipt.d.ts +29 -6
  450. package/dest/tx/tx_receipt.d.ts.map +1 -1
  451. package/dest/tx/tx_receipt.js +23 -19
  452. package/dest/tx/tx_request.js +2 -2
  453. package/dest/tx/validator/error_texts.d.ts +10 -2
  454. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  455. package/dest/tx/validator/error_texts.js +11 -1
  456. package/dest/types/shared.d.ts +1 -10
  457. package/dest/types/shared.d.ts.map +1 -1
  458. package/dest/types/shared.js +0 -9
  459. package/dest/update-checker/index.d.ts +3 -2
  460. package/dest/update-checker/index.d.ts.map +1 -1
  461. package/dest/update-checker/index.js +2 -1
  462. package/dest/update-checker/package_version.d.ts +3 -0
  463. package/dest/update-checker/package_version.d.ts.map +1 -0
  464. package/dest/update-checker/package_version.js +24 -0
  465. package/dest/update-checker/version_checker.d.ts +25 -0
  466. package/dest/update-checker/version_checker.d.ts.map +1 -0
  467. package/dest/update-checker/version_checker.js +50 -0
  468. package/dest/validators/errors.d.ts +6 -1
  469. package/dest/validators/errors.d.ts.map +1 -1
  470. package/dest/validators/errors.js +7 -0
  471. package/dest/versioning/versioning.d.ts +4 -2
  472. package/dest/versioning/versioning.d.ts.map +1 -1
  473. package/dest/versioning/versioning.js +4 -1
  474. package/dest/vks/verification_key.d.ts +2 -137
  475. package/dest/vks/verification_key.d.ts.map +1 -1
  476. package/dest/vks/verification_key.js +5 -126
  477. package/dest/world-state/genesis_data.d.ts +11 -0
  478. package/dest/world-state/genesis_data.d.ts.map +1 -0
  479. package/dest/world-state/genesis_data.js +4 -0
  480. package/dest/world-state/index.d.ts +2 -1
  481. package/dest/world-state/index.d.ts.map +1 -1
  482. package/dest/world-state/index.js +1 -0
  483. package/dest/world-state/world_state_revision.d.ts +8 -1
  484. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  485. package/dest/world-state/world_state_revision.js +7 -1
  486. package/package.json +12 -11
  487. package/src/abi/abi.ts +25 -2
  488. package/src/abi/authorization_selector.ts +2 -8
  489. package/src/abi/buffer.ts +25 -4
  490. package/src/abi/decoder.ts +36 -82
  491. package/src/abi/encoder.ts +85 -6
  492. package/src/abi/event_metadata_definition.ts +2 -0
  493. package/src/abi/event_selector.ts +2 -8
  494. package/src/abi/function_selector.ts +4 -13
  495. package/src/abi/function_signature_decoder.ts +77 -0
  496. package/src/abi/index.ts +1 -0
  497. package/src/abi/note_selector.ts +3 -12
  498. package/src/abi/selector.ts +1 -1
  499. package/src/abi/utils.ts +25 -0
  500. package/src/auth_witness/auth_witness.ts +3 -3
  501. package/src/avm/revert_code.ts +26 -25
  502. package/src/aztec-address/index.ts +4 -10
  503. package/src/block/attestation_info.ts +11 -11
  504. package/src/block/block_data.ts +42 -0
  505. package/src/block/block_hash.ts +21 -14
  506. package/src/block/block_parameter.ts +35 -2
  507. package/src/block/index.ts +1 -0
  508. package/src/block/l2_block.ts +13 -1
  509. package/src/block/l2_block_info.ts +8 -6
  510. package/src/block/l2_block_source.ts +88 -9
  511. package/src/block/l2_block_stream/interfaces.ts +6 -2
  512. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  513. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  514. package/src/block/proposal/attestations_and_signers.ts +32 -17
  515. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  516. package/src/checkpoint/checkpoint.ts +28 -7
  517. package/src/checkpoint/checkpoint_data.ts +91 -0
  518. package/src/checkpoint/index.ts +2 -0
  519. package/src/checkpoint/published_checkpoint.ts +3 -1
  520. package/src/checkpoint/validate.ts +230 -0
  521. package/src/config/chain-config.ts +9 -4
  522. package/src/config/index.ts +1 -0
  523. package/src/config/pipelining-config.ts +31 -0
  524. package/src/config/sequencer-config.ts +49 -3
  525. package/src/contract/contract_address.ts +7 -7
  526. package/src/contract/contract_class.ts +3 -3
  527. package/src/contract/contract_class_id.ts +5 -5
  528. package/src/contract/index.ts +0 -2
  529. package/src/contract/interfaces/contract_class.ts +2 -82
  530. package/src/contract/private_function.ts +5 -3
  531. package/src/epoch-helpers/index.ts +27 -0
  532. package/src/file-store/factory.ts +13 -4
  533. package/src/file-store/http.ts +29 -10
  534. package/src/file-store/index.ts +1 -0
  535. package/src/file-store/local.ts +15 -5
  536. package/src/file-store/s3.ts +12 -3
  537. package/src/gas/README.md +154 -0
  538. package/src/gas/fee_math.ts +120 -0
  539. package/src/gas/gas_fees.ts +20 -1
  540. package/src/gas/gas_settings.ts +65 -12
  541. package/src/gas/index.ts +1 -0
  542. package/src/ha-signing/config.ts +159 -0
  543. package/src/ha-signing/index.ts +29 -0
  544. package/src/ha-signing/local_config.ts +46 -0
  545. package/src/ha-signing/types.ts +126 -0
  546. package/src/hash/hash.ts +72 -11
  547. package/src/hash/map_slot.ts +2 -2
  548. package/src/interfaces/allowed_element.ts +29 -9
  549. package/src/interfaces/archiver.ts +28 -2
  550. package/src/interfaces/aztec-node-admin.ts +31 -8
  551. package/src/interfaces/aztec-node-debug.ts +40 -0
  552. package/src/interfaces/aztec-node.ts +129 -85
  553. package/src/interfaces/block-builder.ts +60 -14
  554. package/src/interfaces/block_response.ts +79 -0
  555. package/src/interfaces/chain_tips.ts +24 -0
  556. package/src/interfaces/checkpoint_parameter.ts +22 -0
  557. package/src/interfaces/checkpoint_response.ts +84 -0
  558. package/src/interfaces/client.ts +6 -0
  559. package/src/interfaces/configs.ts +43 -8
  560. package/src/interfaces/l1_publish_info.ts +40 -0
  561. package/src/interfaces/l2_logs_source.ts +4 -1
  562. package/src/interfaces/merkle_tree_operations.ts +12 -21
  563. package/src/interfaces/p2p.ts +2 -13
  564. package/src/interfaces/prover-client.ts +10 -5
  565. package/src/interfaces/server.ts +5 -0
  566. package/src/interfaces/slasher.ts +0 -6
  567. package/src/interfaces/validator.ts +68 -37
  568. package/src/interfaces/world_state.ts +4 -3
  569. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  570. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  571. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  572. package/src/kernel/hints/index.ts +2 -2
  573. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  574. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  575. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  576. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  577. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  578. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  579. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  580. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  581. package/src/kernel/private_validation_requests.ts +8 -8
  582. package/src/keys/derivation.ts +8 -8
  583. package/src/keys/key_types.ts +6 -2
  584. package/src/keys/public_keys.ts +2 -2
  585. package/src/keys/utils.ts +5 -5
  586. package/src/kv-store/config.ts +36 -0
  587. package/src/kv-store/index.ts +1 -0
  588. package/src/l1-contracts/index.ts +1 -1
  589. package/src/logs/debug_log_store.ts +54 -0
  590. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  591. package/src/logs/index.ts +3 -1
  592. package/src/logs/log_filter.ts +5 -0
  593. package/src/logs/log_id.ts +1 -2
  594. package/src/logs/message_context.ts +17 -7
  595. package/src/logs/pending_tagged_log.ts +1 -3
  596. package/src/logs/pre_tag.ts +5 -5
  597. package/src/logs/public_log.ts +4 -2
  598. package/src/logs/shared_secret_derivation.ts +21 -10
  599. package/src/logs/siloed_tag.ts +22 -12
  600. package/src/logs/tag.ts +9 -9
  601. package/src/logs/tagging_index_range.ts +24 -0
  602. package/src/logs/tx_scoped_l2_log.ts +16 -0
  603. package/src/messaging/l1_to_l2_message.ts +12 -9
  604. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  605. package/src/messaging/l2_to_l1_membership.ts +98 -33
  606. package/src/noir/index.ts +2 -2
  607. package/src/note/note_dao.ts +1 -4
  608. package/src/p2p/attestation_utils.ts +56 -0
  609. package/src/p2p/block_proposal.ts +97 -39
  610. package/src/p2p/checkpoint_attestation.ts +20 -29
  611. package/src/p2p/checkpoint_proposal.ts +87 -84
  612. package/src/p2p/client_type.ts +0 -6
  613. package/src/p2p/consensus_payload.ts +50 -28
  614. package/src/p2p/gossipable.ts +4 -4
  615. package/src/p2p/index.ts +0 -1
  616. package/src/p2p/peer_error.ts +7 -0
  617. package/src/p2p/signature_utils.ts +110 -25
  618. package/src/p2p/signed_txs.ts +46 -28
  619. package/src/p2p/topic_type.ts +8 -15
  620. package/src/parity/parity_base_private_inputs.ts +10 -4
  621. package/src/parity/parity_public_inputs.ts +9 -2
  622. package/src/proofs/chonk_proof.ts +91 -5
  623. package/src/rollup/block_headers_hash.ts +11 -2
  624. package/src/rollup/checkpoint_header.ts +2 -2
  625. package/src/slashing/index.ts +1 -2
  626. package/src/slashing/serialization.ts +1 -81
  627. package/src/slashing/types.ts +3 -35
  628. package/src/slashing/{tally.ts → votes.ts} +34 -1
  629. package/src/tests/factories.ts +37 -63
  630. package/src/tests/mocks.ts +90 -51
  631. package/src/timetable/index.ts +308 -13
  632. package/src/trees/nullifier_leaf.ts +4 -0
  633. package/src/tx/block_header.ts +10 -4
  634. package/src/tx/capsule.ts +10 -2
  635. package/src/tx/fee_provider.ts +10 -0
  636. package/src/tx/global_variable_builder.ts +2 -3
  637. package/src/tx/global_variables.ts +3 -3
  638. package/src/tx/index.ts +1 -0
  639. package/src/tx/indexed_tx_effect.ts +1 -2
  640. package/src/tx/private_execution_result.ts +5 -5
  641. package/src/tx/profiling.ts +18 -9
  642. package/src/tx/protocol_contracts.ts +2 -2
  643. package/src/tx/public_simulation_output.ts +4 -0
  644. package/src/tx/simulated_tx.ts +14 -3
  645. package/src/tx/tx.ts +22 -13
  646. package/src/tx/tx_receipt.ts +28 -16
  647. package/src/tx/tx_request.ts +2 -2
  648. package/src/tx/validator/error_texts.ts +13 -1
  649. package/src/types/shared.ts +0 -10
  650. package/src/update-checker/index.ts +2 -1
  651. package/src/update-checker/package_version.ts +30 -0
  652. package/src/update-checker/version_checker.ts +65 -0
  653. package/src/validators/errors.ts +9 -0
  654. package/src/versioning/versioning.ts +4 -1
  655. package/src/vks/verification_key.ts +5 -184
  656. package/src/world-state/genesis_data.ts +15 -0
  657. package/src/world-state/index.ts +1 -0
  658. package/src/world-state/world_state_revision.ts +9 -1
  659. package/dest/abi/mocked_keys.d.ts +0 -2
  660. package/dest/abi/mocked_keys.d.ts.map +0 -1
  661. package/dest/abi/mocked_keys.js +0 -1
  662. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  663. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  664. package/dest/contract/private_function_membership_proof.js +0 -124
  665. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  666. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  667. package/dest/contract/utility_function_membership_proof.js +0 -87
  668. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  669. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  670. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  671. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  672. package/dest/l1-contracts/slash_factory.js +0 -158
  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/slashing/empire.d.ts +0 -31
  676. package/dest/slashing/empire.d.ts.map +0 -1
  677. package/dest/slashing/empire.js +0 -87
  678. package/dest/slashing/tally.d.ts.map +0 -1
  679. package/dest/update-checker/update-checker.d.ts +0 -49
  680. package/dest/update-checker/update-checker.d.ts.map +0 -1
  681. package/dest/update-checker/update-checker.js +0 -130
  682. package/src/abi/mocked_keys.ts +0 -2
  683. package/src/contract/private_function_membership_proof.ts +0 -167
  684. package/src/contract/utility_function_membership_proof.ts +0 -118
  685. package/src/l1-contracts/slash_factory.ts +0 -180
  686. package/src/slashing/empire.ts +0 -104
  687. package/src/update-checker/update-checker.ts +0 -166
@@ -1,4 +1,4 @@
1
- import { FIXED_DA_GAS, FIXED_L2_GAS, MAX_ENQUEUED_CALLS_PER_TX, MAX_INCLUDE_BY_TIMESTAMP_DURATION, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/constants';
1
+ import { MAX_ENQUEUED_CALLS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
3
  import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import { Buffer32 } from '@aztec/foundation/buffer';
@@ -6,7 +6,9 @@ import { padArrayEnd, times } from '@aztec/foundation/collection';
6
6
  import { randomBytes } from '@aztec/foundation/crypto/random';
7
7
  import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
8
8
  import { Fr } from '@aztec/foundation/curves/bn254';
9
+ import { EthAddress } from '@aztec/foundation/eth-address';
9
10
  import { Signature } from '@aztec/foundation/eth-signature';
11
+ import { hashTypedData } from 'viem';
10
12
  import { PublicTxEffect } from '../avm/avm.js';
11
13
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
12
14
  import { PublicDataWrite } from '../avm/public_data_write.js';
@@ -33,7 +35,7 @@ import { BlockProposal } from '../p2p/block_proposal.js';
33
35
  import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
34
36
  import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
35
37
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
36
- import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
38
+ import { getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
37
39
  import { ChonkProof } from '../proofs/chonk_proof.js';
38
40
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
39
41
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
@@ -44,14 +46,22 @@ import { TxSimulationResult } from '../tx/simulated_tx.js';
44
46
  import { TxEffect } from '../tx/tx_effect.js';
45
47
  import { TxHash } from '../tx/tx_hash.js';
46
48
  import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
49
+ export const TEST_COORDINATION_SIGNATURE_CONTEXT = {
50
+ chainId: 31337,
51
+ rollupAddress: EthAddress.fromNumber(1)
52
+ };
53
+ function signTypedData(signer, typedData) {
54
+ return signer.sign(Buffer32.fromString(hashTypedData(typedData)));
55
+ }
47
56
  export const randomTxHash = ()=>TxHash.random();
48
- export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
57
+ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), gasLimits, maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
49
58
  const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
50
59
  const isForPublic = totalPublicCallRequests > 0;
51
60
  const data = PrivateKernelTailCircuitPublicInputs.empty();
52
61
  const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
53
62
  data.constants.anchorBlockHeader = anchorBlockHeader;
54
- data.constants.txContext.gasSettings = GasSettings.default({
63
+ data.constants.txContext.gasSettings = GasSettings.fallback({
64
+ gasLimits,
55
65
  maxFeesPerGas,
56
66
  maxPriorityFeesPerGas
57
67
  });
@@ -61,8 +71,8 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
61
71
  data.constants.txContext.version = version;
62
72
  data.constants.vkTreeRoot = vkTreeRoot;
63
73
  data.constants.protocolContractsHash = protocolContractsHash;
64
- // Set includeByTimestamp to the maximum allowed duration from the current time.
65
- data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
74
+ // Set expirationTimestamp to the maximum allowed duration from the current time.
75
+ data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
66
76
  const publicFunctionCalldata = [];
67
77
  if (!isForPublic) {
68
78
  data.forRollup.end.nullifiers[0] = firstNullifier.value;
@@ -100,13 +110,13 @@ export const mockTxForRollup = (seed = 1, opts = {})=>mockTx(seed, {
100
110
  numberOfNonRevertiblePublicCallRequests: 0,
101
111
  numberOfRevertiblePublicCallRequests: 0
102
112
  });
103
- /** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.default({
113
+ /** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.fallback({
104
114
  maxFeesPerGas: new GasFees(10, 10)
105
115
  }), vkTreeRoot = Fr.ZERO, protocolContracts = makeProtocolContracts(seed + 0x100), globalVariables = GlobalVariables.empty(), newL1ToL2Snapshot = AppendOnlyTreeSnapshot.empty(), feePayer, feePaymentPublicDataWrite, // The default gasUsed is the tx overhead.
106
- gasUsed = Gas.from({
107
- daGas: FIXED_DA_GAS,
108
- l2Gas: FIXED_L2_GAS
109
- }), privateOnly = false, avmAccumulatedData, ...mockTxOpts } = {}) {
116
+ privateOnly = false, gasUsed = Gas.from({
117
+ daGas: TX_DA_GAS_OVERHEAD,
118
+ l2Gas: privateOnly ? PRIVATE_TX_L2_GAS_OVERHEAD : PUBLIC_TX_L2_GAS_OVERHEAD
119
+ }), avmAccumulatedData, ...mockTxOpts } = {}) {
110
120
  seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
111
121
  anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
112
122
  feePayer ??= makeAztecAddress(seed + 0x100);
@@ -215,6 +225,10 @@ export function mockL1ToL2Messages(numL1ToL2Messages) {
215
225
  }
216
226
  export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, blocks, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, maxEffects, ...options } = {}) {
217
227
  const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
228
+ const globals = GlobalVariables.random({
229
+ slotNumber,
230
+ ...options
231
+ });
218
232
  const blocksAndMessages = [];
219
233
  // Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
220
234
  // The current block's header.lastArchive must equal the previous block's archive.
@@ -227,11 +241,11 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
227
241
  const blockNumber = BlockNumber(startBlockNumber + i);
228
242
  const { block, messages } = {
229
243
  block: blocks?.[i] ?? await L2Block.random(blockNumber, {
244
+ ...globals,
230
245
  checkpointNumber,
231
246
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
232
247
  txsPerBlock: numTxsPerBlock,
233
248
  txOptions,
234
- slotNumber,
235
249
  ...options,
236
250
  ...makeBlockOptions(blockNumber),
237
251
  ...lastArchive ? {
@@ -249,17 +263,17 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
249
263
  }
250
264
  const messages = blocksAndMessages[0].messages;
251
265
  const inHash = computeInHashFromL1ToL2Messages(messages);
266
+ const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
252
267
  const checkpoint = await Checkpoint.random(checkpointNumber, {
253
268
  numBlocks: 0,
254
- slotNumber,
255
269
  inHash,
256
- ...options
270
+ ...options,
271
+ ...globals,
272
+ lastArchive: firstBlockLastArchive,
273
+ lastArchiveRoot: firstBlockLastArchive.root,
274
+ archive: lastArchive
257
275
  });
258
276
  checkpoint.blocks = blocksAndMessages.map(({ block })=>block);
259
- // Set the checkpoint's archive to match the last block's archive for proper chaining.
260
- // When the archiver reconstructs checkpoints from L1, it uses the checkpoint's archive root
261
- // from the L1 event to set the last block's archive. Without this, the archive chain breaks.
262
- checkpoint.archive = lastArchive;
263
277
  // Return lastArchive so callers can chain it across multiple checkpoints
264
278
  return {
265
279
  checkpoint,
@@ -296,15 +310,16 @@ export const randomDeployedContract = async ()=>{
296
310
  };
297
311
  };
298
312
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
299
- const makeAndSignConsensusPayload = (domainSeparator, options)=>{
313
+ const makeAndSignConsensusPayload = (options)=>{
300
314
  const header = options?.header ?? makeCheckpointHeader(1);
301
315
  const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
302
316
  const payload = ConsensusPayload.fromFields({
303
317
  header,
304
318
  archive,
305
- feeAssetPriceModifier
319
+ feeAssetPriceModifier,
320
+ signatureContext: TEST_COORDINATION_SIGNATURE_CONTEXT
306
321
  });
307
- const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
322
+ const hash = getHashedSignaturePayloadTypedData(payload);
308
323
  const signature = signer.sign(hash);
309
324
  return {
310
325
  blockNumber: header.slotNumber,
@@ -313,7 +328,7 @@ const makeAndSignConsensusPayload = (domainSeparator, options)=>{
313
328
  };
314
329
  };
315
330
  export const makeAndSignCommitteeAttestationsAndSigners = (attestationsAndSigners, signer = Secp256k1Signer.random())=>{
316
- const hash = getHashedSignaturePayloadEthSignedMessage(attestationsAndSigners, SignatureDomainSeparator.attestationsAndSigners);
331
+ const hash = getHashedSignaturePayloadTypedData(attestationsAndSigners);
317
332
  return signer.sign(hash);
318
333
  };
319
334
  export const makeBlockProposal = (options)=>{
@@ -331,29 +346,27 @@ export const makeBlockProposal = (options)=>{
331
346
  ].map(()=>TxHash.random());
332
347
  const txs = options?.txs;
333
348
  const signer = options?.signer ?? Secp256k1Signer.random();
334
- return BlockProposal.createProposalFromSigner(blockHeader, indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, (_payload, _context)=>Promise.resolve(signer.signMessage(_payload)));
349
+ const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
350
+ return BlockProposal.createProposalFromSigner(blockHeader, CheckpointNumber(1), indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, signatureContext, (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)));
335
351
  };
336
- export const makeCheckpointProposal = (options)=>{
337
- const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
352
+ export const makeCheckpointProposal = async (options)=>{
338
353
  const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
339
354
  const archiveRoot = options?.archiveRoot ?? Fr.random();
340
355
  const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
341
356
  const signer = options?.signer ?? Secp256k1Signer.random();
342
- // Build lastBlock info if provided
343
- const lastBlockInfo = options?.lastBlock ? {
344
- blockHeader,
357
+ const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
358
+ // Build a signed block proposal if lastBlock options are provided
359
+ const lastBlockProposal = options?.lastBlock ? await makeBlockProposal({
360
+ blockHeader: options.lastBlock.blockHeader,
345
361
  indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
346
- txHashes: options.lastBlock.txHashes ?? [
347
- 0,
348
- 1,
349
- 2,
350
- 3,
351
- 4,
352
- 5
353
- ].map(()=>TxHash.random()),
354
- txs: options.lastBlock.txs
355
- } : undefined;
356
- return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
362
+ inHash: checkpointHeader.inHash,
363
+ archiveRoot,
364
+ txHashes: options.lastBlock.txHashes,
365
+ txs: options.lastBlock.txs,
366
+ signer,
367
+ signatureContext
368
+ }) : undefined;
369
+ return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, CheckpointNumber(1), feeAssetPriceModifier, lastBlockProposal, signatureContext, (typedData)=>Promise.resolve(signTypedData(signer, typedData)));
357
370
  };
358
371
  /**
359
372
  * Create a checkpoint attestation for testing
@@ -361,26 +374,27 @@ export const makeCheckpointProposal = (options)=>{
361
374
  const header = options.header ?? makeCheckpointHeader(1);
362
375
  const archive = options.archive ?? Fr.random();
363
376
  const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
377
+ const signatureContext = options.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
364
378
  const { signer, attesterSigner = signer, proposerSigner = signer } = options;
365
- const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
379
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
366
380
  // Sign as attester
367
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
381
+ const attestationHash = getHashedSignaturePayloadTypedData(payload);
368
382
  const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
369
383
  const attestationSignature = attestationSigner.sign(attestationHash);
370
384
  // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
371
385
  // This is different from ConsensusPayload's format (ABI encoding)
372
386
  const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
373
- const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
374
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(tempProposal, SignatureDomainSeparator.checkpointProposal);
387
+ const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty(), signatureContext);
388
+ const proposalHash = getHashedSignaturePayloadTypedData(tempProposal);
375
389
  const proposerSignature = proposalSignerToUse.sign(proposalHash);
376
390
  return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
377
391
  };
378
392
  /**
379
393
  * Create a checkpoint attestation from a checkpoint proposal
380
394
  */ export const makeCheckpointAttestationFromProposal = (proposal, attesterSigner)=>{
381
- const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
395
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier, proposal.signatureContext);
382
396
  // Sign as attester
383
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
397
+ const attestationHash = getHashedSignaturePayloadTypedData(payload);
384
398
  const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
385
399
  const attestationSignature = attestationSigner.sign(attestationHash);
386
400
  // Use the proposal's signature as the proposer signature
@@ -19,6 +19,55 @@ export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
19
19
  export declare const DEFAULT_L1_PUBLISHING_TIME = 12;
20
20
  /** Minimum execution time for building a block in seconds */
21
21
  export declare const MIN_EXECUTION_TIME = 2;
22
+ export type CheckpointTimingConfig = {
23
+ aztecSlotDuration: number;
24
+ ethereumSlotDuration?: number;
25
+ blockDuration?: number;
26
+ checkpointAssembleTime?: number;
27
+ checkpointInitializationTime?: number;
28
+ l1PublishingTime?: number;
29
+ minExecutionTime?: number;
30
+ p2pPropagationTime?: number;
31
+ pipelining?: boolean;
32
+ };
33
+ export interface CheckpointTiming {
34
+ readonly aztecSlotDuration: number;
35
+ readonly blockDuration: number | undefined;
36
+ readonly checkpointAssembleTime: number;
37
+ readonly checkpointInitializationTime: number;
38
+ readonly l1PublishingTime: number;
39
+ readonly minExecutionTime: number;
40
+ readonly p2pPropagationTime: number;
41
+ readonly checkpointFinalizationTime: number;
42
+ readonly pipeliningAttestationGracePeriod: number;
43
+ readonly timeReservedAtEnd: number;
44
+ readonly minimumBuildSlotWork: number;
45
+ readonly initializeDeadline: number;
46
+ readonly checkpointAssemblyDeadline: number;
47
+ readonly checkpointAttestationStartDeadline: number;
48
+ readonly checkpointAttestationDeadline: number;
49
+ readonly checkpointPublishingDeadline: number;
50
+ calculateMaxBlocksPerSlot(): number;
51
+ }
52
+ export interface PipelinedCheckpointTiming extends CheckpointTiming {
53
+ readonly proposalWindowIntoTargetSlot: number;
54
+ readonly attestationWindowIntoTargetSlot: number;
55
+ }
56
+ /**
57
+ * Creates a checkpoint timing model for the requested scheduling mode.
58
+ *
59
+ * Most callers should use this factory and depend only on the shared
60
+ * `CheckpointTiming` interface. The returned implementation is selected from
61
+ * `opts.pipelining`.
62
+ */
63
+ export declare function createCheckpointTimingModel(opts: CheckpointTimingConfig): CheckpointTiming;
64
+ /**
65
+ * Creates a pipelined checkpoint timing model with target-slot window accessors.
66
+ *
67
+ * Use this when the caller specifically needs the pipelined-only timing surface,
68
+ * such as proposal or attestation acceptance windows into the target slot.
69
+ */
70
+ export declare function createPipelinedCheckpointTimingModel(opts: Omit<CheckpointTimingConfig, 'pipelining'>): PipelinedCheckpointTiming;
22
71
  /**
23
72
  * Calculates the maximum number of blocks that can be built in a slot.
24
73
  * Used by both the sequencer timetable and p2p gossipsub scoring.
@@ -33,5 +82,6 @@ export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number,
33
82
  checkpointAssembleTime?: number;
34
83
  p2pPropagationTime?: number;
35
84
  l1PublishingTime?: number;
85
+ pipelining?: boolean;
36
86
  }): number;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEM7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDcEMsSUFBSSxHQUFFO0lBQ0osNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEIsR0FDTCxNQUFNLENBb0JSIn0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEMsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDbkMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDeEMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUM5QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDbEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQzVDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDbEQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDcEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUM1QyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDO0lBQ3BELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLENBQUM7SUFDL0MsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUU5Qyx5QkFBeUIsSUFBSSxNQUFNLENBQUM7Q0FDckM7QUFFRCxNQUFNLFdBQVcseUJBQTBCLFNBQVEsZ0JBQWdCO0lBQ2pFLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDOUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUNsRDtBQTZKRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixHQUFHLGdCQUFnQixDQVMxRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9DQUFvQyxDQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxHQUMvQyx5QkFBeUIsQ0FPM0I7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQix5QkFBeUIsQ0FDdkMsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNwQyxJQUFJLEdBQUU7SUFDSiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FDTCxNQUFNLENBVVIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,GAAE;IACJ,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GACL,MAAM,CAoBR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAE9C,yBAAyB,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAC;CAClD;AA6JD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAS1F;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAC/C,yBAAyB,CAO3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,GAAE;IACJ,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,MAAM,CAUR"}
@@ -13,6 +13,153 @@
13
13
  /** Default one-way P2P propagation time for proposals and attestations in seconds */ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
14
14
  /** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */ export const DEFAULT_L1_PUBLISHING_TIME = 12;
15
15
  /** Minimum execution time for building a block in seconds */ export const MIN_EXECUTION_TIME = 2;
16
+ /**
17
+ * Shared base for checkpoint timing implementations.
18
+ *
19
+ * This class owns the common inputs and formulas used by both pipelined and
20
+ * non-pipelined scheduling. Variant-specific deadline math is delegated to the
21
+ * concrete subclasses below.
22
+ */ class BaseCheckpointTiming {
23
+ aztecSlotDuration;
24
+ blockDuration;
25
+ checkpointAssembleTime;
26
+ checkpointInitializationTime;
27
+ l1PublishingTime;
28
+ minExecutionTime;
29
+ p2pPropagationTime;
30
+ constructor(opts){
31
+ this.aztecSlotDuration = opts.aztecSlotDuration;
32
+ this.blockDuration = opts.blockDuration;
33
+ this.checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
34
+ this.checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
35
+ this.l1PublishingTime = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
36
+ this.minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
37
+ this.p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
38
+ }
39
+ get checkpointFinalizationTime() {
40
+ // Allow enough time to
41
+ // - build the checkpoint
42
+ // - Round-trip over p2p
43
+ // - Publish to L1
44
+ return this.checkpointAssembleTime + this.p2pPropagationTime * 2 + this.l1PublishingTime;
45
+ }
46
+ get pipeliningAttestationGracePeriod() {
47
+ // Allow enough time to
48
+ // - build the block
49
+ // - pass it back over p2p
50
+ return (this.blockDuration ?? 0) + this.p2pPropagationTime;
51
+ }
52
+ get initializeDeadline() {
53
+ return this.aztecSlotDuration - this.minimumBuildSlotWork;
54
+ }
55
+ get checkpointAttestationStartDeadline() {
56
+ return this.checkpointAssemblyDeadline;
57
+ }
58
+ calculateMaxBlocksPerSlot() {
59
+ if (!this.blockDuration) {
60
+ return 1;
61
+ }
62
+ const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
63
+ return Math.floor(timeAvailableForBlocks / this.blockDuration);
64
+ }
65
+ }
66
+ /**
67
+ * Checkpoint timing model for the non-pipelined sequencer flow.
68
+ *
69
+ * In this mode, checkpoint assembly, attestation collection, and L1 publishing
70
+ * must all complete within the current Aztec slot.
71
+ */ class StandardCheckpointTimingModel extends BaseCheckpointTiming {
72
+ get timeReservedAtEnd() {
73
+ return (this.blockDuration ?? 0) + this.checkpointFinalizationTime;
74
+ }
75
+ get minimumBuildSlotWork() {
76
+ return this.checkpointInitializationTime + this.minExecutionTime * 2 + this.checkpointFinalizationTime;
77
+ }
78
+ get checkpointAssemblyDeadline() {
79
+ return this.aztecSlotDuration - this.l1PublishingTime - 2 * this.p2pPropagationTime;
80
+ }
81
+ get checkpointAttestationDeadline() {
82
+ return this.aztecSlotDuration - this.l1PublishingTime;
83
+ }
84
+ get checkpointPublishingDeadline() {
85
+ return this.aztecSlotDuration - this.l1PublishingTime;
86
+ }
87
+ }
88
+ /**
89
+ * Checkpoint timing model for proposer pipelining.
90
+ *
91
+ * In this mode, the build work starts at the wall-clock slot boundary and the
92
+ * checkpoint proposal is broadcast early enough that attestations complete by
93
+ * the end of the build slot. L1 submission can then be sent at the boundary of
94
+ * the target slot. The extra target-slot window getters are intended for
95
+ * consumers such as P2P validators that need to validate pipelined messages
96
+ * against wallclock time.
97
+ */ class PipelinedCheckpointTimingModel extends BaseCheckpointTiming {
98
+ get proposalWindowIntoTargetSlot() {
99
+ // Proposals no longer spill into the target slot: they are broadcast early
100
+ // enough in the build slot that attestations complete before the boundary.
101
+ // Any residual tolerance into the target slot is covered by clock disparity.
102
+ return 0;
103
+ }
104
+ get attestationWindowIntoTargetSlot() {
105
+ // Straggler grace: attestations aim to complete by build-slot end. Allow a
106
+ // small window into the target slot for late arrivals (round-trip p2p).
107
+ return 2 * this.p2pPropagationTime;
108
+ }
109
+ get pipeliningAttestationGracePeriod() {
110
+ // Under the early-pipelining regime attestations complete inside the build
111
+ // slot itself, so there is no extra grace into the target slot.
112
+ return 0;
113
+ }
114
+ get timeReservedAtEnd() {
115
+ // Reserve enough time at the end of the build slot for:
116
+ // - assembling and broadcasting the checkpoint proposal
117
+ // - round-trip p2p propagation (proposal out, attestations back)
118
+ // - validators re-executing the last block
119
+ return this.checkpointAssembleTime + 2 * this.p2pPropagationTime + (this.blockDuration ?? 0);
120
+ }
121
+ get minimumBuildSlotWork() {
122
+ return this.checkpointInitializationTime + this.minExecutionTime * 2;
123
+ }
124
+ get checkpointAssemblyDeadline() {
125
+ // Allow enough time to build all blocks and receive attestations. With
126
+ // `pipeliningAttestationGracePeriod = 0` this equals `aztecSlotDuration`.
127
+ return this.aztecSlotDuration + this.pipeliningAttestationGracePeriod;
128
+ }
129
+ get checkpointAttestationDeadline() {
130
+ // Allowed to be into the next wallclock slot minus the allocated l1 publishing time
131
+ return this.aztecSlotDuration * 2 - this.l1PublishingTime;
132
+ }
133
+ get checkpointPublishingDeadline() {
134
+ // Allowed to be into the next wallclock slot minus the allocated l1 Publishing time
135
+ return this.aztecSlotDuration * 2 - this.l1PublishingTime;
136
+ }
137
+ }
138
+ /**
139
+ * Creates a checkpoint timing model for the requested scheduling mode.
140
+ *
141
+ * Most callers should use this factory and depend only on the shared
142
+ * `CheckpointTiming` interface. The returned implementation is selected from
143
+ * `opts.pipelining`.
144
+ */ export function createCheckpointTimingModel(opts) {
145
+ validateCheckpointTimingConfig(opts);
146
+ const normalizedOpts = normalizeCheckpointTimingConfig(opts);
147
+ const timing = normalizedOpts.pipelining ? new PipelinedCheckpointTimingModel(normalizedOpts) : new StandardCheckpointTimingModel(normalizedOpts);
148
+ validateCheckpointTimingModel(timing);
149
+ return timing;
150
+ }
151
+ /**
152
+ * Creates a pipelined checkpoint timing model with target-slot window accessors.
153
+ *
154
+ * Use this when the caller specifically needs the pipelined-only timing surface,
155
+ * such as proposal or attestation acceptance windows into the target slot.
156
+ */ export function createPipelinedCheckpointTimingModel(opts) {
157
+ validateCheckpointTimingConfig(opts);
158
+ const normalizedOpts = normalizeCheckpointTimingConfig(opts);
159
+ const timing = new PipelinedCheckpointTimingModel(normalizedOpts);
160
+ validateCheckpointTimingModel(timing);
161
+ return timing;
162
+ }
16
163
  /**
17
164
  * Calculates the maximum number of blocks that can be built in a slot.
18
165
  * Used by both the sequencer timetable and p2p gossipsub scoring.
@@ -22,18 +169,75 @@
22
169
  * @param opts - Optional overrides for timing constants
23
170
  * @returns Maximum number of blocks per slot
24
171
  */ export function calculateMaxBlocksPerSlot(aztecSlotDurationSec, blockDurationSec, opts = {}) {
25
- if (!blockDurationSec) {
26
- return 1; // Single block per slot
27
- }
28
- const initOffset = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
29
- const assembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
30
- const p2pTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
31
- const l1Time = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
32
- // Calculate checkpoint finalization time (assembly + round-trip propagation + L1 publishing)
33
- const checkpointFinalizationTime = assembleTime + p2pTime * 2 + l1Time;
34
- // Time reserved at end for last sub-slot (validator re-execution) + finalization
35
- const timeReservedAtEnd = blockDurationSec + checkpointFinalizationTime;
36
- // Time available for building blocks
37
- const timeAvailableForBlocks = aztecSlotDurationSec - initOffset - timeReservedAtEnd;
38
- return Math.max(1, Math.floor(timeAvailableForBlocks / blockDurationSec));
172
+ return createCheckpointTimingModel({
173
+ aztecSlotDuration: aztecSlotDurationSec,
174
+ blockDuration: blockDurationSec,
175
+ checkpointAssembleTime: opts.checkpointAssembleTime,
176
+ checkpointInitializationTime: opts.checkpointInitializationTime,
177
+ l1PublishingTime: opts.l1PublishingTime,
178
+ p2pPropagationTime: opts.p2pPropagationTime,
179
+ pipelining: opts.pipelining
180
+ }).calculateMaxBlocksPerSlot();
181
+ }
182
+ function assertNonNegative(name, value) {
183
+ if (value < 0) {
184
+ throw new Error(`${name} must be non-negative (got ${value})`);
185
+ }
186
+ }
187
+ function validateCheckpointTimingConfig(opts) {
188
+ if (opts.aztecSlotDuration <= 0) {
189
+ throw new Error(`aztecSlotDuration must be positive (got ${opts.aztecSlotDuration})`);
190
+ }
191
+ if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration <= 0) {
192
+ throw new Error(`ethereumSlotDuration must be positive when provided (got ${opts.ethereumSlotDuration})`);
193
+ }
194
+ if (opts.blockDuration !== undefined && opts.blockDuration <= 0) {
195
+ throw new Error(`blockDuration must be positive when provided (got ${opts.blockDuration})`);
196
+ }
197
+ if (opts.minExecutionTime !== undefined && opts.minExecutionTime <= 0) {
198
+ throw new Error(`minExecutionTime must be positive when provided (got ${opts.minExecutionTime})`);
199
+ }
200
+ if (opts.checkpointAssembleTime !== undefined) {
201
+ assertNonNegative('checkpointAssembleTime', opts.checkpointAssembleTime);
202
+ }
203
+ if (opts.checkpointInitializationTime !== undefined) {
204
+ assertNonNegative('checkpointInitializationTime', opts.checkpointInitializationTime);
205
+ }
206
+ if (opts.l1PublishingTime !== undefined) {
207
+ assertNonNegative('l1PublishingTime', opts.l1PublishingTime);
208
+ }
209
+ if (opts.p2pPropagationTime !== undefined) {
210
+ assertNonNegative('p2pPropagationTime', opts.p2pPropagationTime);
211
+ }
212
+ }
213
+ function normalizeCheckpointTimingConfig(opts) {
214
+ let checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
215
+ let checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
216
+ let minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
217
+ let p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
218
+ if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration < 8) {
219
+ p2pPropagationTime = 0;
220
+ checkpointAssembleTime = 0.5;
221
+ checkpointInitializationTime = 0.5;
222
+ minExecutionTime = 1;
223
+ }
224
+ if (opts.blockDuration !== undefined && minExecutionTime > opts.blockDuration) {
225
+ minExecutionTime = opts.blockDuration;
226
+ }
227
+ return {
228
+ ...opts,
229
+ checkpointAssembleTime,
230
+ checkpointInitializationTime,
231
+ minExecutionTime,
232
+ p2pPropagationTime
233
+ };
234
+ }
235
+ function validateCheckpointTimingModel(model) {
236
+ if (model.blockDuration === undefined) {
237
+ return;
238
+ }
239
+ const timeAvailableForBlocks = model.aztecSlotDuration - model.checkpointInitializationTime - model.timeReservedAtEnd;
240
+ if (timeAvailableForBlocks < model.blockDuration) {
241
+ throw new Error(`Invalid timing configuration: only ${timeAvailableForBlocks}s available for block building, which is less than one blockDuration (${model.blockDuration}s).`);
242
+ }
39
243
  }
@@ -84,6 +84,7 @@ export declare class NullifierLeafPreimage implements IndexedTreeLeafPreimage {
84
84
  asLeaf(): NullifierLeaf;
85
85
  toBuffer(): Buffer;
86
86
  toHashInputs(): Buffer[];
87
+ isEmpty(): boolean;
87
88
  toFields(): Fr[];
88
89
  clone(): NullifierLeafPreimage;
89
90
  static random(): NullifierLeafPreimage;
@@ -133,4 +134,4 @@ export declare class NullifierLeaf implements IndexedTreeLeaf {
133
134
  */
134
135
  static fromPlainObject(obj: any): NullifierLeaf;
135
136
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVyX2xlYWYuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9udWxsaWZpZXJfbGVhZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gscUJBQWEscUJBQXNCLFlBQVcsdUJBQXVCO0lBRWpFOztPQUVHO0lBQ0ksSUFBSSxFQUFFLGFBQWE7SUFDMUI7O09BRUc7SUFDSSxPQUFPLEVBQUUsRUFBRTtJQUNsQjs7T0FFRztJQUNJLFNBQVMsRUFBRSxNQUFNO0lBWjFCO0lBQ0U7O09BRUc7SUFDSSxJQUFJLEVBQUUsYUFBYTtJQUMxQjs7T0FFRztJQUNJLE9BQU8sRUFBRSxFQUFFO0lBQ2xCOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU0sRUFDdEI7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxxQkFBcUIsQ0FTdEQ7SUFFRCxNQUFNLEtBQUssVUFBVTs7Ozs7Ozs7T0FFcEI7SUFFRCxNQUFNLElBQUksTUFBTSxDQUVmO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFFRCxZQUFZLElBQUksTUFBTSxDQUVyQjtJQUVELE1BQU0sSUFBSSxhQUFhLENBRXRCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxZQUFZLElBQUksTUFBTSxFQUFFLENBTXZCO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsS0FBSyxJQUFJLHFCQUFxQixDQUU3QjtJQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUVaO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FFcEM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHFCQUFxQixDQU90RTtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcscUJBQXFCLENBRTlGO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEdBQUcscUJBQXFCLENBRW5FO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLGFBQWMsWUFBVyxlQUFlO0lBRWpEOztPQUVHO0lBQ0ksU0FBUyxFQUFFLEVBQUU7SUFKdEI7SUFDRTs7T0FFRztJQUNJLFNBQVMsRUFBRSxFQUFFLEVBQ2xCO0lBRUosTUFBTSxJQUFJLE1BQU0sQ0FFZjtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsS0FBSyxJQUFJLGFBQWEsQ0FFckI7SUFFRCxZQUFZLElBQUksTUFBTSxFQUFFLENBRXZCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxhQUFhLENBRTVCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBRTdCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRCxRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsR0FBRyxhQUFhLENBRS9DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FFNUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGFBQWEsQ0FHM0Q7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7T0FFaEI7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsYUFBYSxDQUs5QztDQUNGIn0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVyX2xlYWYuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9udWxsaWZpZXJfbGVhZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gscUJBQWEscUJBQXNCLFlBQVcsdUJBQXVCO0lBRWpFOztPQUVHO0lBQ0ksSUFBSSxFQUFFLGFBQWE7SUFDMUI7O09BRUc7SUFDSSxPQUFPLEVBQUUsRUFBRTtJQUNsQjs7T0FFRztJQUNJLFNBQVMsRUFBRSxNQUFNO0lBWjFCO0lBQ0U7O09BRUc7SUFDSSxJQUFJLEVBQUUsYUFBYTtJQUMxQjs7T0FFRztJQUNJLE9BQU8sRUFBRSxFQUFFO0lBQ2xCOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU0sRUFDdEI7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxxQkFBcUIsQ0FTdEQ7SUFFRCxNQUFNLEtBQUssVUFBVTs7Ozs7Ozs7T0FFcEI7SUFFRCxNQUFNLElBQUksTUFBTSxDQUVmO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFFRCxZQUFZLElBQUksTUFBTSxDQUVyQjtJQUVELE1BQU0sSUFBSSxhQUFhLENBRXRCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxZQUFZLElBQUksTUFBTSxFQUFFLENBTXZCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRCxLQUFLLElBQUkscUJBQXFCLENBRTdCO0lBRUQsTUFBTSxDQUFDLE1BQU0sMEJBRVo7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUVwQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcscUJBQXFCLENBT3RFO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxxQkFBcUIsQ0FFOUY7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FFbkU7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxZQUFXLGVBQWU7SUFFakQ7O09BRUc7SUFDSSxTQUFTLEVBQUUsRUFBRTtJQUp0QjtJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLEVBQUUsRUFDbEI7SUFFSixNQUFNLElBQUksTUFBTSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxLQUFLLElBQUksYUFBYSxDQUVyQjtJQUVELFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FFdkI7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FFNUI7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FFN0I7SUFFRCxPQUFPLElBQUksT0FBTyxDQUVqQjtJQUVELFFBQVEsQ0FBQyxRQUFRLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FFL0M7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUU1QztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsYUFBYSxDQUczRDtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7OztPQUVoQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxhQUFhLENBSzlDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"nullifier_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_leaf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IAEjE;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;IAZ1B;IACE;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CAStD;IAED,MAAM,KAAK,UAAU;;;;;;;;OAEpB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,YAAY,IAAI,MAAM,CAErB;IAED,MAAM,IAAI,aAAa,CAEtB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,YAAY,IAAI,MAAM,EAAE,CAMvB;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,KAAK,IAAI,qBAAqB,CAE7B;IAED,MAAM,CAAC,MAAM,0BAEZ;IAED,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAEpC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB,CAOtE;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB,CAE9F;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,GAAG,qBAAqB,CAEnE;CACF;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAEjD;;OAEG;IACI,SAAS,EAAE,EAAE;IAJtB;IACE;;OAEG;IACI,SAAS,EAAE,EAAE,EAClB;IAEJ,MAAM,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,aAAa,CAErB;IAED,YAAY,IAAI,MAAM,EAAE,CAEvB;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,MAAM,CAAC,MAAM,IAAI,aAAa,CAE7B;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAE/C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE5C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAG3D;IAED,MAAM,KAAK,MAAM;;;;;;;;OAEhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAK9C;CACF"}
1
+ {"version":3,"file":"nullifier_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_leaf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IAEjE;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;IAZ1B;IACE;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CAStD;IAED,MAAM,KAAK,UAAU;;;;;;;;OAEpB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,YAAY,IAAI,MAAM,CAErB;IAED,MAAM,IAAI,aAAa,CAEtB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,YAAY,IAAI,MAAM,EAAE,CAMvB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,KAAK,IAAI,qBAAqB,CAE7B;IAED,MAAM,CAAC,MAAM,0BAEZ;IAED,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAEpC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB,CAOtE;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB,CAE9F;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,GAAG,qBAAqB,CAEnE;CACF;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAEjD;;OAEG;IACI,SAAS,EAAE,EAAE;IAJtB;IACE;;OAEG;IACI,SAAS,EAAE,EAAE,EAClB;IAEJ,MAAM,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,aAAa,CAErB;IAED,YAAY,IAAI,MAAM,EAAE,CAEvB;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,MAAM,CAAC,MAAM,IAAI,aAAa,CAE7B;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAE/C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE5C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAG3D;IAED,MAAM,KAAK,MAAM;;;;;;;;OAEhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAK9C;CACF"}
@@ -65,6 +65,9 @@ import { z } from 'zod';
65
65
  Buffer.from(toBufferBE(this.nextIndex, 32))
66
66
  ];
67
67
  }
68
+ isEmpty() {
69
+ return this.leaf.isEmpty() && this.nextKey.isZero() && this.nextIndex === 0n;
70
+ }
68
71
  toFields() {
69
72
  return this.toHashInputs().map((buf)=>Fr.fromBuffer(buf));
70
73
  }
@@ -63,7 +63,9 @@ export declare class BlockHeader {
63
63
  static fromString(str: string): BlockHeader;
64
64
  hash(): Promise<BlockHash>;
65
65
  /** Manually set the hash for this block header if already computed */
66
- setHash(hashed: Fr): void;
66
+ setHash(hashed: BlockHash): void;
67
+ /** Recomputes the cached hash. Used for testing when header fields are mutated via unfreeze. */
68
+ recomputeHash(): Promise<BlockHash>;
67
69
  static random(overrides?: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>>): BlockHeader;
68
70
  toInspect(): {
69
71
  lastArchive: `0x${string}`;
@@ -91,4 +93,4 @@ export declare class BlockHeader {
91
93
  [inspect.custom](): string;
92
94
  equals(other: this): boolean;
93
95
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsK0JBQStCO0FBQy9CLHFCQUFhLFdBQVc7SUFJcEIsdURBQXVEO2FBQ3ZDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkQsdUJBQXVCO2FBQ1AsS0FBSyxFQUFFLGNBQWM7SUFDckM7OztPQUdHO2FBQ2EsY0FBYyxFQUFFLEVBQUU7SUFDbEMsdUNBQXVDO2FBQ3ZCLGVBQWUsRUFBRSxlQUFlO0lBQ2hELG1FQUFtRTthQUNuRCxTQUFTLEVBQUUsRUFBRTtJQUM3Qix3RUFBd0U7YUFDeEQsYUFBYSxFQUFFLEVBQUU7SUFqQm5DLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBcUI7SUFFekM7SUFDRSx1REFBdUQ7SUFDdkMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuRCx1QkFBdUI7SUFDUCxLQUFLLEVBQUUsY0FBYztJQUNyQzs7O09BR0c7SUFDYSxjQUFjLEVBQUUsRUFBRTtJQUNsQyx1Q0FBdUM7SUFDdkIsZUFBZSxFQUFFLGVBQWU7SUFDaEQsbUVBQW1FO0lBQ25ELFNBQVMsRUFBRSxFQUFFO0lBQzdCLHdFQUF3RTtJQUN4RCxhQUFhLEVBQUUsRUFBRSxFQUMvQjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQVd2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0ZBUzdDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUV4QztJQUVELE9BQU8sSUFBSSxVQUFVLENBRXBCO0lBRUQsY0FBYyxJQUFJLFdBQVcsQ0FFNUI7SUFFRCxPQUFPLFdBU047SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQsS0FBSyxJQUFJLFdBQVcsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FXNUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQVd6RDtJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBVXJFO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FTakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FFMUM7SUFFRCxJQUFJLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU96QjtJQUVELHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFFakI7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLFdBQVcsQ0FVOUc7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BU1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FZZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FTbEM7Q0FDRiJ9
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsK0JBQStCO0FBQy9CLHFCQUFhLFdBQVc7SUFJcEIsdURBQXVEO2FBQ3ZDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkQsdUJBQXVCO2FBQ1AsS0FBSyxFQUFFLGNBQWM7SUFDckM7OztPQUdHO2FBQ2EsY0FBYyxFQUFFLEVBQUU7SUFDbEMsdUNBQXVDO2FBQ3ZCLGVBQWUsRUFBRSxlQUFlO0lBQ2hELG1FQUFtRTthQUNuRCxTQUFTLEVBQUUsRUFBRTtJQUM3Qix3RUFBd0U7YUFDeEQsYUFBYSxFQUFFLEVBQUU7SUFqQm5DLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBcUI7SUFFekM7SUFDRSx1REFBdUQ7SUFDdkMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuRCx1QkFBdUI7SUFDUCxLQUFLLEVBQUUsY0FBYztJQUNyQzs7O09BR0c7SUFDYSxjQUFjLEVBQUUsRUFBRTtJQUNsQyx1Q0FBdUM7SUFDdkIsZUFBZSxFQUFFLGVBQWU7SUFDaEQsbUVBQW1FO0lBQ25ELFNBQVMsRUFBRSxFQUFFO0lBQzdCLHdFQUF3RTtJQUN4RCxhQUFhLEVBQUUsRUFBRSxFQUMvQjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQVd2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0ZBUzdDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUV4QztJQUVELE9BQU8sSUFBSSxVQUFVLENBRXBCO0lBRUQsY0FBYyxJQUFJLFdBQVcsQ0FFNUI7SUFFRCxPQUFPLFdBU047SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQsS0FBSyxJQUFJLFdBQVcsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FXNUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQVd6RDtJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBVXJFO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FTakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FFMUM7SUFFRCxJQUFJLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU96QjtJQUVELHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsUUFFeEI7SUFFRCxnR0FBZ0c7SUFDaEcsYUFBYSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHbEM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLFdBQVcsQ0FVOUc7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BU1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FZZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FTbEM7Q0FDRiJ9