@aztec/stdlib 0.0.1-commit.936cb2cae → 0.0.1-commit.949a33fd8

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 (353) hide show
  1. package/dest/abi/authorization_selector.d.ts +3 -6
  2. package/dest/abi/authorization_selector.d.ts.map +1 -1
  3. package/dest/abi/encoder.d.ts +1 -1
  4. package/dest/abi/encoder.d.ts.map +1 -1
  5. package/dest/abi/encoder.js +32 -6
  6. package/dest/abi/event_selector.d.ts +3 -6
  7. package/dest/abi/event_selector.d.ts.map +1 -1
  8. package/dest/abi/function_selector.d.ts +3 -6
  9. package/dest/abi/function_selector.d.ts.map +1 -1
  10. package/dest/abi/function_selector.js +1 -3
  11. package/dest/abi/note_selector.d.ts +3 -6
  12. package/dest/abi/note_selector.d.ts.map +1 -1
  13. package/dest/abi/note_selector.js +1 -3
  14. package/dest/abi/selector.d.ts +2 -2
  15. package/dest/abi/selector.d.ts.map +1 -1
  16. package/dest/abi/selector.js +1 -1
  17. package/dest/avm/revert_code.d.ts +8 -18
  18. package/dest/avm/revert_code.d.ts.map +1 -1
  19. package/dest/avm/revert_code.js +15 -30
  20. package/dest/aztec-address/index.d.ts +3 -6
  21. package/dest/aztec-address/index.d.ts.map +1 -1
  22. package/dest/aztec-address/index.js +2 -4
  23. package/dest/block/attestation_info.d.ts +3 -2
  24. package/dest/block/attestation_info.d.ts.map +1 -1
  25. package/dest/block/attestation_info.js +7 -5
  26. package/dest/block/block_data.d.ts +297 -8
  27. package/dest/block/block_data.d.ts.map +1 -1
  28. package/dest/block/block_data.js +16 -2
  29. package/dest/block/block_hash.d.ts +11 -10
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +10 -9
  32. package/dest/block/block_parameter.d.ts +30 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +36 -2
  35. package/dest/block/l2_block_info.d.ts +6 -5
  36. package/dest/block/l2_block_info.d.ts.map +1 -1
  37. package/dest/block/l2_block_info.js +6 -5
  38. package/dest/block/l2_block_source.d.ts +116 -4
  39. package/dest/block/l2_block_source.d.ts.map +1 -1
  40. package/dest/block/l2_block_source.js +1 -0
  41. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  42. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  43. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  44. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  45. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  46. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  47. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  48. package/dest/block/proposal/attestations_and_signers.js +26 -18
  49. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  50. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  51. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  52. package/dest/checkpoint/checkpoint.d.ts +7 -1
  53. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  54. package/dest/checkpoint/checkpoint.js +9 -1
  55. package/dest/checkpoint/checkpoint_data.d.ts +77 -5
  56. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  57. package/dest/checkpoint/checkpoint_data.js +12 -0
  58. package/dest/config/chain-config.d.ts +2 -2
  59. package/dest/config/chain-config.d.ts.map +1 -1
  60. package/dest/config/chain-config.js +9 -3
  61. package/dest/config/sequencer-config.d.ts +3 -3
  62. package/dest/config/sequencer-config.d.ts.map +1 -1
  63. package/dest/config/sequencer-config.js +11 -4
  64. package/dest/contract/contract_address.d.ts +1 -1
  65. package/dest/contract/contract_address.js +2 -2
  66. package/dest/contract/private_function.d.ts +1 -1
  67. package/dest/contract/private_function.d.ts.map +1 -1
  68. package/dest/contract/private_function.js +2 -4
  69. package/dest/epoch-helpers/index.d.ts +3 -1
  70. package/dest/epoch-helpers/index.d.ts.map +1 -1
  71. package/dest/epoch-helpers/index.js +3 -0
  72. package/dest/gas/fee_math.d.ts +49 -0
  73. package/dest/gas/fee_math.d.ts.map +1 -0
  74. package/dest/gas/fee_math.js +80 -0
  75. package/dest/gas/gas_fees.d.ts +5 -1
  76. package/dest/gas/gas_fees.d.ts.map +1 -1
  77. package/dest/gas/gas_fees.js +10 -1
  78. package/dest/gas/gas_settings.d.ts +40 -3
  79. package/dest/gas/gas_settings.d.ts.map +1 -1
  80. package/dest/gas/gas_settings.js +50 -6
  81. package/dest/gas/index.d.ts +2 -1
  82. package/dest/gas/index.d.ts.map +1 -1
  83. package/dest/gas/index.js +1 -0
  84. package/dest/ha-signing/config.d.ts +6 -6
  85. package/dest/ha-signing/config.d.ts.map +1 -1
  86. package/dest/ha-signing/config.js +4 -3
  87. package/dest/ha-signing/index.d.ts +2 -2
  88. package/dest/ha-signing/index.d.ts.map +1 -1
  89. package/dest/ha-signing/index.js +1 -1
  90. package/dest/ha-signing/local_config.d.ts +1 -1
  91. package/dest/ha-signing/local_config.d.ts.map +1 -1
  92. package/dest/ha-signing/local_config.js +2 -2
  93. package/dest/ha-signing/types.d.ts +37 -32
  94. package/dest/ha-signing/types.d.ts.map +1 -1
  95. package/dest/ha-signing/types.js +13 -6
  96. package/dest/hash/hash.d.ts +16 -1
  97. package/dest/hash/hash.d.ts.map +1 -1
  98. package/dest/hash/hash.js +32 -0
  99. package/dest/interfaces/archiver.d.ts +11 -1
  100. package/dest/interfaces/archiver.d.ts.map +1 -1
  101. package/dest/interfaces/archiver.js +11 -3
  102. package/dest/interfaces/aztec-node-admin.d.ts +19 -14
  103. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  104. package/dest/interfaces/aztec-node-admin.js +5 -4
  105. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  106. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  107. package/dest/interfaces/aztec-node-debug.js +18 -0
  108. package/dest/interfaces/aztec-node.d.ts +54 -55
  109. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  110. package/dest/interfaces/aztec-node.js +20 -16
  111. package/dest/interfaces/block_response.d.ts +156 -0
  112. package/dest/interfaces/block_response.d.ts.map +1 -0
  113. package/dest/interfaces/block_response.js +24 -0
  114. package/dest/interfaces/chain_tips.d.ts +304 -0
  115. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  116. package/dest/interfaces/chain_tips.js +11 -0
  117. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  118. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  119. package/dest/interfaces/checkpoint_parameter.js +20 -0
  120. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  121. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  122. package/dest/interfaces/checkpoint_response.js +26 -0
  123. package/dest/interfaces/client.d.ts +7 -1
  124. package/dest/interfaces/client.d.ts.map +1 -1
  125. package/dest/interfaces/client.js +6 -0
  126. package/dest/interfaces/configs.d.ts +7 -2
  127. package/dest/interfaces/configs.d.ts.map +1 -1
  128. package/dest/interfaces/configs.js +2 -1
  129. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  130. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  131. package/dest/interfaces/l1_publish_info.js +26 -0
  132. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  133. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  134. package/dest/interfaces/prover-client.d.ts +1 -1
  135. package/dest/interfaces/prover-client.d.ts.map +1 -1
  136. package/dest/interfaces/prover-client.js +0 -3
  137. package/dest/interfaces/proving-job.d.ts +166 -166
  138. package/dest/interfaces/server.d.ts +6 -1
  139. package/dest/interfaces/server.d.ts.map +1 -1
  140. package/dest/interfaces/server.js +5 -0
  141. package/dest/interfaces/slasher.d.ts +1 -10
  142. package/dest/interfaces/slasher.d.ts.map +1 -1
  143. package/dest/interfaces/slasher.js +0 -2
  144. package/dest/interfaces/validator.d.ts +23 -17
  145. package/dest/interfaces/validator.d.ts.map +1 -1
  146. package/dest/interfaces/validator.js +1 -0
  147. package/dest/l1-contracts/index.d.ts +2 -2
  148. package/dest/l1-contracts/index.d.ts.map +1 -1
  149. package/dest/l1-contracts/index.js +1 -1
  150. package/dest/logs/extended_directional_app_tagging_secret.d.ts +4 -4
  151. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -1
  152. package/dest/logs/extended_directional_app_tagging_secret.js +12 -5
  153. package/dest/logs/log_id.d.ts +1 -1
  154. package/dest/logs/log_id.d.ts.map +1 -1
  155. package/dest/logs/log_id.js +1 -2
  156. package/dest/logs/siloed_tag.d.ts +5 -7
  157. package/dest/logs/siloed_tag.d.ts.map +1 -1
  158. package/dest/logs/siloed_tag.js +4 -0
  159. package/dest/logs/tag.d.ts +5 -6
  160. package/dest/logs/tag.d.ts.map +1 -1
  161. package/dest/logs/tag.js +4 -0
  162. package/dest/p2p/block_proposal.d.ts +22 -14
  163. package/dest/p2p/block_proposal.d.ts.map +1 -1
  164. package/dest/p2p/block_proposal.js +45 -40
  165. package/dest/p2p/checkpoint_attestation.d.ts +10 -8
  166. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  167. package/dest/p2p/checkpoint_attestation.js +17 -24
  168. package/dest/p2p/checkpoint_proposal.d.ts +20 -14
  169. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  170. package/dest/p2p/checkpoint_proposal.js +34 -51
  171. package/dest/p2p/consensus_payload.d.ts +18 -7
  172. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  173. package/dest/p2p/consensus_payload.js +31 -19
  174. package/dest/p2p/gossipable.d.ts +4 -4
  175. package/dest/p2p/gossipable.d.ts.map +1 -1
  176. package/dest/p2p/signature_utils.d.ts +28 -19
  177. package/dest/p2p/signature_utils.d.ts.map +1 -1
  178. package/dest/p2p/signature_utils.js +118 -21
  179. package/dest/p2p/signed_txs.d.ts +15 -13
  180. package/dest/p2p/signed_txs.d.ts.map +1 -1
  181. package/dest/p2p/signed_txs.js +26 -24
  182. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  183. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  184. package/dest/parity/parity_base_private_inputs.js +7 -5
  185. package/dest/parity/parity_public_inputs.d.ts +7 -3
  186. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  187. package/dest/parity/parity_public_inputs.js +6 -3
  188. package/dest/rollup/block_headers_hash.d.ts +1 -1
  189. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  190. package/dest/rollup/block_headers_hash.js +8 -2
  191. package/dest/slashing/index.d.ts +2 -3
  192. package/dest/slashing/index.d.ts.map +1 -1
  193. package/dest/slashing/index.js +1 -2
  194. package/dest/slashing/serialization.d.ts +2 -6
  195. package/dest/slashing/serialization.d.ts.map +1 -1
  196. package/dest/slashing/serialization.js +0 -60
  197. package/dest/slashing/types.d.ts +4 -90
  198. package/dest/slashing/types.d.ts.map +1 -1
  199. package/dest/slashing/types.js +0 -14
  200. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  201. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  202. package/dest/slashing/{tally.js → votes.js} +1 -1
  203. package/dest/tests/factories.d.ts +2 -7
  204. package/dest/tests/factories.d.ts.map +1 -1
  205. package/dest/tests/factories.js +19 -19
  206. package/dest/tests/mocks.d.ts +7 -1
  207. package/dest/tests/mocks.d.ts.map +1 -1
  208. package/dest/tests/mocks.js +39 -30
  209. package/dest/timetable/index.d.ts +51 -1
  210. package/dest/timetable/index.d.ts.map +1 -1
  211. package/dest/timetable/index.js +218 -14
  212. package/dest/trees/nullifier_leaf.d.ts +2 -1
  213. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  214. package/dest/trees/nullifier_leaf.js +3 -0
  215. package/dest/tx/block_header.d.ts +2 -2
  216. package/dest/tx/block_header.d.ts.map +1 -1
  217. package/dest/tx/block_header.js +1 -1
  218. package/dest/tx/fee_provider.d.ts +10 -0
  219. package/dest/tx/fee_provider.d.ts.map +1 -0
  220. package/dest/tx/fee_provider.js +1 -0
  221. package/dest/tx/global_variable_builder.d.ts +3 -4
  222. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  223. package/dest/tx/index.d.ts +2 -1
  224. package/dest/tx/index.d.ts.map +1 -1
  225. package/dest/tx/index.js +1 -0
  226. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  227. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  228. package/dest/tx/indexed_tx_effect.js +1 -2
  229. package/dest/tx/profiling.js +4 -4
  230. package/dest/tx/simulated_tx.d.ts +4 -4
  231. package/dest/tx/simulated_tx.d.ts.map +1 -1
  232. package/dest/tx/simulated_tx.js +3 -3
  233. package/dest/tx/tx.d.ts +3 -3
  234. package/dest/tx/tx.d.ts.map +1 -1
  235. package/dest/tx/tx_receipt.d.ts +8 -4
  236. package/dest/tx/tx_receipt.d.ts.map +1 -1
  237. package/dest/tx/tx_receipt.js +8 -15
  238. package/dest/types/shared.d.ts +1 -10
  239. package/dest/types/shared.d.ts.map +1 -1
  240. package/dest/types/shared.js +0 -9
  241. package/dest/vks/verification_key.d.ts +2 -137
  242. package/dest/vks/verification_key.d.ts.map +1 -1
  243. package/dest/vks/verification_key.js +5 -126
  244. package/dest/world-state/genesis_data.d.ts +11 -0
  245. package/dest/world-state/genesis_data.d.ts.map +1 -0
  246. package/dest/world-state/genesis_data.js +4 -0
  247. package/dest/world-state/index.d.ts +2 -1
  248. package/dest/world-state/index.d.ts.map +1 -1
  249. package/dest/world-state/index.js +1 -0
  250. package/dest/world-state/world_state_revision.d.ts +8 -1
  251. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  252. package/dest/world-state/world_state_revision.js +7 -1
  253. package/package.json +8 -8
  254. package/src/abi/authorization_selector.ts +2 -8
  255. package/src/abi/encoder.ts +42 -6
  256. package/src/abi/event_selector.ts +2 -8
  257. package/src/abi/function_selector.ts +3 -12
  258. package/src/abi/note_selector.ts +3 -12
  259. package/src/abi/selector.ts +1 -1
  260. package/src/avm/revert_code.ts +25 -39
  261. package/src/aztec-address/index.ts +4 -10
  262. package/src/block/attestation_info.ts +11 -11
  263. package/src/block/block_data.ts +20 -4
  264. package/src/block/block_hash.ts +21 -14
  265. package/src/block/block_parameter.ts +35 -2
  266. package/src/block/l2_block_info.ts +8 -6
  267. package/src/block/l2_block_source.ts +51 -3
  268. package/src/block/l2_block_stream/interfaces.ts +6 -2
  269. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  270. package/src/block/proposal/attestations_and_signers.ts +32 -17
  271. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  272. package/src/checkpoint/checkpoint.ts +11 -1
  273. package/src/checkpoint/checkpoint_data.ts +44 -4
  274. package/src/config/chain-config.ts +9 -4
  275. package/src/config/sequencer-config.ts +20 -6
  276. package/src/contract/contract_address.ts +2 -2
  277. package/src/contract/private_function.ts +3 -1
  278. package/src/epoch-helpers/index.ts +5 -0
  279. package/src/gas/README.md +31 -0
  280. package/src/gas/fee_math.ts +120 -0
  281. package/src/gas/gas_fees.ts +17 -4
  282. package/src/gas/gas_settings.ts +65 -12
  283. package/src/gas/index.ts +1 -0
  284. package/src/ha-signing/config.ts +5 -2
  285. package/src/ha-signing/index.ts +3 -1
  286. package/src/ha-signing/local_config.ts +2 -2
  287. package/src/ha-signing/types.ts +48 -34
  288. package/src/hash/hash.ts +27 -0
  289. package/src/interfaces/archiver.ts +22 -2
  290. package/src/interfaces/aztec-node-admin.ts +8 -8
  291. package/src/interfaces/aztec-node-debug.ts +40 -0
  292. package/src/interfaces/aztec-node.ts +120 -95
  293. package/src/interfaces/block_response.ts +79 -0
  294. package/src/interfaces/chain_tips.ts +24 -0
  295. package/src/interfaces/checkpoint_parameter.ts +22 -0
  296. package/src/interfaces/checkpoint_response.ts +84 -0
  297. package/src/interfaces/client.ts +6 -0
  298. package/src/interfaces/configs.ts +5 -1
  299. package/src/interfaces/l1_publish_info.ts +40 -0
  300. package/src/interfaces/merkle_tree_operations.ts +3 -2
  301. package/src/interfaces/prover-client.ts +2 -5
  302. package/src/interfaces/server.ts +5 -0
  303. package/src/interfaces/slasher.ts +0 -6
  304. package/src/interfaces/validator.ts +20 -8
  305. package/src/l1-contracts/index.ts +1 -1
  306. package/src/logs/extended_directional_app_tagging_secret.ts +19 -8
  307. package/src/logs/log_id.ts +1 -2
  308. package/src/logs/siloed_tag.ts +8 -9
  309. package/src/logs/tag.ts +8 -8
  310. package/src/p2p/block_proposal.ts +96 -36
  311. package/src/p2p/checkpoint_attestation.ts +20 -29
  312. package/src/p2p/checkpoint_proposal.ts +88 -71
  313. package/src/p2p/consensus_payload.ts +50 -28
  314. package/src/p2p/gossipable.ts +4 -4
  315. package/src/p2p/signature_utils.ts +110 -25
  316. package/src/p2p/signed_txs.ts +46 -28
  317. package/src/parity/parity_base_private_inputs.ts +10 -4
  318. package/src/parity/parity_public_inputs.ts +9 -2
  319. package/src/rollup/block_headers_hash.ts +11 -2
  320. package/src/slashing/index.ts +1 -2
  321. package/src/slashing/serialization.ts +1 -81
  322. package/src/slashing/types.ts +3 -35
  323. package/src/slashing/{tally.ts → votes.ts} +1 -1
  324. package/src/tests/factories.ts +19 -21
  325. package/src/tests/mocks.ts +63 -39
  326. package/src/timetable/index.ts +308 -13
  327. package/src/trees/nullifier_leaf.ts +4 -0
  328. package/src/tx/block_header.ts +2 -2
  329. package/src/tx/fee_provider.ts +10 -0
  330. package/src/tx/global_variable_builder.ts +2 -3
  331. package/src/tx/index.ts +1 -0
  332. package/src/tx/indexed_tx_effect.ts +1 -2
  333. package/src/tx/profiling.ts +4 -4
  334. package/src/tx/simulated_tx.ts +6 -2
  335. package/src/tx/tx.ts +2 -2
  336. package/src/tx/tx_receipt.ts +11 -14
  337. package/src/types/shared.ts +0 -10
  338. package/src/vks/verification_key.ts +5 -184
  339. package/src/world-state/genesis_data.ts +15 -0
  340. package/src/world-state/index.ts +1 -0
  341. package/src/world-state/world_state_revision.ts +9 -1
  342. package/dest/abi/mocked_keys.d.ts +0 -2
  343. package/dest/abi/mocked_keys.d.ts.map +0 -1
  344. package/dest/abi/mocked_keys.js +0 -1
  345. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  346. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  347. package/dest/l1-contracts/slash_factory.js +0 -158
  348. package/dest/slashing/empire.d.ts +0 -31
  349. package/dest/slashing/empire.d.ts.map +0 -1
  350. package/dest/slashing/empire.js +0 -87
  351. package/src/abi/mocked_keys.ts +0 -2
  352. package/src/l1-contracts/slash_factory.ts +0 -180
  353. package/src/slashing/empire.ts +0 -104
@@ -152,6 +152,12 @@ export declare class Checkpoint {
152
152
  * checkpoints up to and including this one in the epoch.
153
153
  */
154
154
  getCheckpointOutHash(): Fr;
155
+ /**
156
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
157
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
158
+ * checkpoints up to and including this one in the epoch.
159
+ */
160
+ static getCheckpointOutHash(blocks: L2Block[]): Fr;
155
161
  getState(): import("../tx/state_reference.js").StateReference;
156
162
  toCheckpointInfo(): CheckpointInfo;
157
163
  /** Returns stats used for logging */
@@ -175,4 +181,4 @@ export declare class Checkpoint {
175
181
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> & Partial<Parameters<typeof L2Block.random>[1]>): Promise<Checkpoint>;
176
182
  }
177
183
  export {};
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQix5RkFBeUY7SUFDbEYscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLHlGQUF5RjtJQUNsRixxQkFBcUIsR0FBRSxNQUFXLEVBQ3ZDO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsY0FFckM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsNEZBRTFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksY0FRM0M7SUFFTSxRQUFRLDRCQVNkO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLElBQUksSUFBSSxFQUFFLENBRWhCO0lBRUQ7Ozs7T0FJRztJQUNJLG9CQUFvQixJQUFJLEVBQUUsQ0FHaEM7SUFFTSxRQUFRLHNEQUVkO0lBRU0sZ0JBQWdCLElBQUksY0FBYyxDQVF4QztJQUVELHFDQUFxQztJQUM5QixRQUFROzs7Ozs7Ozs7O01Ba0JkO0lBRUQsT0FBYSxNQUFNLENBQ2pCLGdCQUFnQixtQkFBc0IsRUFDdEMsRUFDRSxTQUFhLEVBQ2IsZ0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixxQkFBMEIsRUFDMUIsR0FBRyxPQUFPLEVBQ1gsR0FBRTtRQUNELFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMxQixlQUFlLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztRQUN6QyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMvQixPQUFPLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztLQUNsQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFNLHVCQTJCckQ7Q0FDRiJ9
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQix5RkFBeUY7SUFDbEYscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLHlGQUF5RjtJQUNsRixxQkFBcUIsR0FBRSxNQUFXLEVBQ3ZDO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsY0FFckM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsNEZBRTFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksY0FRM0M7SUFFTSxRQUFRLDRCQVNkO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLElBQUksSUFBSSxFQUFFLENBRWhCO0lBRUQ7Ozs7T0FJRztJQUNJLG9CQUFvQixJQUFJLEVBQUUsQ0FFaEM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBR2pEO0lBRU0sUUFBUSxzREFFZDtJQUVNLGdCQUFnQixJQUFJLGNBQWMsQ0FReEM7SUFFRCxxQ0FBcUM7SUFDOUIsUUFBUTs7Ozs7Ozs7OztNQWtCZDtJQUVELE9BQWEsTUFBTSxDQUNqQixnQkFBZ0IsbUJBQXNCLEVBQ3RDLEVBQ0UsU0FBYSxFQUNiLGdCQUFvQixFQUNwQixlQUFlLEVBQ2YscUJBQTBCLEVBQzFCLEdBQUcsT0FBTyxFQUNYLEdBQUU7UUFDRCxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDbkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDMUIsZUFBZSxDQUFDLEVBQUUsc0JBQXNCLENBQUM7UUFDekMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDL0IsT0FBTyxDQUFDLEVBQUUsc0JBQXNCLENBQUM7S0FDbEMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSx1QkE0QnJEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,EAAE,MAAM;IAVtC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,GAAE,MAAW,EACvC;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,4FAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BASd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAED;;;;OAIG;IACI,oBAAoB,IAAI,EAAE,CAGhC;IAEM,QAAQ,sDAEd;IAEM,gBAAgB,IAAI,cAAc,CAQxC;IAED,qCAAqC;IAC9B,QAAQ;;;;;;;;;;MAkBd;IAED,OAAa,MAAM,CACjB,gBAAgB,mBAAsB,EACtC,EACE,SAAa,EACb,gBAAoB,EACpB,eAAe,EACf,qBAA0B,EAC1B,GAAG,OAAO,EACX,GAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,OAAO,CAAC,EAAE,sBAAsB,CAAC;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,uBA2BrD;CACF"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,EAAE,MAAM;IAVtC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,GAAE,MAAW,EACvC;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,4FAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BASd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAED;;;;OAIG;IACI,oBAAoB,IAAI,EAAE,CAEhC;IAED;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAGjD;IAEM,QAAQ,sDAEd;IAEM,gBAAgB,IAAI,cAAc,CAQxC;IAED,qCAAqC;IAC9B,QAAQ;;;;;;;;;;MAkBd;IAED,OAAa,MAAM,CACjB,gBAAgB,mBAAsB,EACtC,EACE,SAAa,EACb,gBAAoB,EACpB,eAAe,EACf,qBAA0B,EAC1B,GAAG,OAAO,EACX,GAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,OAAO,CAAC,EAAE,sBAAsB,CAAC;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,uBA4BrD;CACF"}
@@ -70,7 +70,14 @@ export class Checkpoint {
70
70
  * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
71
71
  * checkpoints up to and including this one in the epoch.
72
72
  */ getCheckpointOutHash() {
73
- const msgs = this.blocks.map((block)=>block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
73
+ return Checkpoint.getCheckpointOutHash(this.blocks);
74
+ }
75
+ /**
76
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
77
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
78
+ * checkpoints up to and including this one in the epoch.
79
+ */ static getCheckpointOutHash(blocks) {
80
+ const msgs = blocks.map((block)=>block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
74
81
  return computeCheckpointOutHash(msgs);
75
82
  }
76
83
  getState() {
@@ -114,6 +121,7 @@ export class Checkpoint {
114
121
  let lastArchive = previousArchive;
115
122
  for(let i = 0; i < numBlocks; i++){
116
123
  const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
124
+ checkpointNumber,
117
125
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
118
126
  ...options,
119
127
  ...lastArchive ? {
@@ -5,17 +5,85 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
5
5
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
6
6
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
7
7
  import { L1PublishedData } from './published_checkpoint.js';
8
- /** Lightweight checkpoint metadata without full block data. */
9
- export type CheckpointData = {
8
+ /** Base type for checkpoint data */
9
+ export type CommonCheckpointData = {
10
10
  checkpointNumber: CheckpointNumber;
11
11
  header: CheckpointHeader;
12
- archive: AppendOnlyTreeSnapshot;
13
- checkpointOutHash: Fr;
14
12
  startBlock: BlockNumber;
15
13
  blockCount: number;
14
+ };
15
+ /** Data stored with checkpoint data after publishing on l1 */
16
+ export type L1EnrichedCheckpointData = {
16
17
  attestations: CommitteeAttestation[];
17
18
  l1: L1PublishedData;
18
19
  };
20
+ /** Data stored alongside checkpoint data in storage */
21
+ export type StorageEnrichedCheckpointData = {
22
+ archive: AppendOnlyTreeSnapshot;
23
+ checkpointOutHash: Fr;
24
+ /** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
25
+ feeAssetPriceModifier: bigint;
26
+ };
27
+ /** Data stored only with proposed checkpoint data */
28
+ export type ProposedOnlyCheckpointData = {
29
+ totalManaUsed: bigint;
30
+ feeAssetPriceModifier: bigint;
31
+ };
32
+ /** Lightweight checkpoint metadata without full block data. */
33
+ export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
34
+ /** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
35
+ * internally by the block store from the stored blocks. */
36
+ export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
37
+ /** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
38
+ * Includes fee-relevant fields used during pipelining to compute the fee header override. */
39
+ export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
40
+ export declare const ProposedCheckpointDataSchema: z.ZodObject<{
41
+ checkpointNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
42
+ header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
43
+ archive: z.ZodEffects<z.ZodObject<{
44
+ root: z.ZodType<Fr, any, string>;
45
+ nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ root: Fr;
48
+ nextAvailableLeafIndex: number;
49
+ }, {
50
+ root: string;
51
+ nextAvailableLeafIndex: string | number | bigint;
52
+ }>, AppendOnlyTreeSnapshot, {
53
+ root: string;
54
+ nextAvailableLeafIndex: string | number | bigint;
55
+ }>;
56
+ checkpointOutHash: z.ZodType<Fr, any, string>;
57
+ startBlock: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
58
+ blockCount: z.ZodNumber;
59
+ totalManaUsed: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
60
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ checkpointNumber: number & {
63
+ _branding: "CheckpointNumber";
64
+ };
65
+ header: CheckpointHeader;
66
+ archive: AppendOnlyTreeSnapshot;
67
+ checkpointOutHash: Fr;
68
+ startBlock: number & {
69
+ _branding: "BlockNumber";
70
+ };
71
+ blockCount: number;
72
+ totalManaUsed: bigint;
73
+ feeAssetPriceModifier: bigint;
74
+ }, {
75
+ checkpointNumber: string | number | bigint;
76
+ header?: any;
77
+ archive: {
78
+ root: string;
79
+ nextAvailableLeafIndex: string | number | bigint;
80
+ };
81
+ checkpointOutHash: string;
82
+ startBlock: string | number | bigint;
83
+ blockCount: number;
84
+ totalManaUsed: string | number | bigint;
85
+ feeAssetPriceModifier: string | number | bigint;
86
+ }>;
19
87
  export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
20
88
  checkpointNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
21
89
  header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
@@ -35,6 +103,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
35
103
  checkpointOutHash: z.ZodType<Fr, any, string>;
36
104
  startBlock: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
37
105
  blockCount: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
106
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
38
107
  attestations: z.ZodArray<z.ZodEffects<z.ZodObject<{
39
108
  address: z.ZodType<import("@aztec/foundation/eth-address").EthAddress, any, string>;
40
109
  signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, import("../block/proposal/committee_attestation.js").Signature, string>;
@@ -76,6 +145,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
76
145
  _branding: "BlockNumber";
77
146
  };
78
147
  blockCount: number;
148
+ feeAssetPriceModifier: bigint;
79
149
  attestations: CommitteeAttestation[];
80
150
  l1: L1PublishedData;
81
151
  }, {
@@ -88,6 +158,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
88
158
  checkpointOutHash: string;
89
159
  startBlock: string | number | bigint;
90
160
  blockCount: string | number | bigint;
161
+ feeAssetPriceModifier: string | number | bigint;
91
162
  attestations: {
92
163
  address: string;
93
164
  signature: string;
@@ -107,6 +178,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
107
178
  checkpointOutHash: string;
108
179
  startBlock: string | number | bigint;
109
180
  blockCount: string | number | bigint;
181
+ feeAssetPriceModifier: string | number | bigint;
110
182
  attestations: {
111
183
  address: string;
112
184
  signature: string;
@@ -117,4 +189,4 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
117
189
  blockHash: string;
118
190
  };
119
191
  }>;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxnQkFBZ0IsRUFFakIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsK0RBQStEO0FBQy9ELE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQztJQUNoQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDdEIsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEVBQUUsRUFBRSxlQUFlLENBQUM7Q0FDckIsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQjlCLENBQUMifQ==
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxnQkFBZ0IsRUFFakIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsb0NBQW9DO0FBQ3BDLE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFDekIsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDO0NBQ3BCLENBQUM7QUFFRiw4REFBOEQ7QUFDOUQsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQ3JDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEVBQUUsRUFBRSxlQUFlLENBQUM7Q0FDckIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2RCxNQUFNLE1BQU0sNkJBQTZCLEdBQUc7SUFDMUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO0lBQ2hDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUN0QixtR0FBbUc7SUFDbkcscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRixzREFBc0Q7QUFDdEQsTUFBTSxNQUFNLDBCQUEwQixHQUFHO0lBQ3ZDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRiwrREFBK0Q7QUFDL0QsTUFBTSxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztBQUU3Rzs0REFDNEQ7QUFDNUQsTUFBTSxNQUFNLHVCQUF1QixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDO0FBRXhGOzhGQUM4RjtBQUM5RixNQUFNLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFFN0YsZUFBTyxNQUFNLDRCQUE0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVN2QyxDQUFDO0FBRUgsZUFBTyxNQUFNLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3QjlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,EAAE,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB9B,CAAC"}
1
+ {"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,oCAAoC;AACpC,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,EAAE,CAAC;IACtB,mGAAmG;IACnG,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;AAE7G;4DAC4D;AAC5D,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAExF;8FAC8F;AAC9F,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,6BAA6B,CAAC;AAE7F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB9B,CAAC"}
@@ -5,6 +5,16 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
5
5
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
6
6
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
7
7
  import { L1PublishedData } from './published_checkpoint.js';
8
+ export const ProposedCheckpointDataSchema = z.object({
9
+ checkpointNumber: CheckpointNumberSchema,
10
+ header: CheckpointHeader.schema,
11
+ archive: AppendOnlyTreeSnapshot.schema,
12
+ checkpointOutHash: schemas.Fr,
13
+ startBlock: BlockNumberSchema,
14
+ blockCount: z.number(),
15
+ totalManaUsed: schemas.BigInt,
16
+ feeAssetPriceModifier: schemas.BigInt
17
+ });
8
18
  export const CheckpointDataSchema = z.object({
9
19
  checkpointNumber: CheckpointNumberSchema,
10
20
  header: CheckpointHeader.schema,
@@ -12,6 +22,7 @@ export const CheckpointDataSchema = z.object({
12
22
  checkpointOutHash: schemas.Fr,
13
23
  startBlock: BlockNumberSchema,
14
24
  blockCount: schemas.Integer,
25
+ feeAssetPriceModifier: schemas.BigInt,
15
26
  attestations: z.array(CommitteeAttestation.schema),
16
27
  l1: L1PublishedData.schema
17
28
  }).transform((obj)=>({
@@ -21,6 +32,7 @@ export const CheckpointDataSchema = z.object({
21
32
  checkpointOutHash: obj.checkpointOutHash,
22
33
  startBlock: obj.startBlock,
23
34
  blockCount: obj.blockCount,
35
+ feeAssetPriceModifier: obj.feeAssetPriceModifier,
24
36
  attestations: obj.attestations,
25
37
  l1: obj.l1
26
38
  }));
@@ -1,4 +1,4 @@
1
- import type { ConfigMappingsType } from '@aztec/foundation/config';
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  export { type SequencerConfig, SequencerConfigSchema } from '../interfaces/configs.js';
4
4
  export { type AllowedElement } from '../interfaces/allowed_element.js';
@@ -16,4 +16,4 @@ export type ChainConfig = {
16
16
  rollupAddress: EthAddress;
17
17
  };
18
18
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4tY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NoYWluLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RSxlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsV0FJOUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBZ0IvRCxDQUFDO0FBRUYsMkJBQTJCO0FBQzNCLE1BQU0sTUFBTSxXQUFXLEdBQUc7SUFDeEIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsaUNBQWlDO0lBQ2pDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsdUNBQXVDO0lBQ3ZDLFdBQVcsRUFBRTtRQUNYLDRCQUE0QjtRQUM1QixhQUFhLEVBQUUsVUFBVSxDQUFDO0tBQzNCLENBQUM7Q0FDSCxDQUFDIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4tY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NoYWluLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBc0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdkUsZUFBTyxNQUFNLGdCQUFnQixFQUFFLFdBSTlCLENBQUM7QUFFRixlQUFPLE1BQU0sbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQXFCL0QsQ0FBQztBQUVGLDJCQUEyQjtBQUMzQixNQUFNLE1BQU0sV0FBVyxHQUFHO0lBQ3hCLHlDQUF5QztJQUN6QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGlDQUFpQztJQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHVDQUF1QztJQUN2QyxXQUFXLEVBQUU7UUFDWCw0QkFBNEI7UUFDNUIsYUFBYSxFQUFFLFVBQVUsQ0FBQztLQUMzQixDQUFDO0NBQ0gsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/config/chain-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAgB/D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE;QACX,4BAA4B;QAC5B,aAAa,EAAE,UAAU,CAAC;KAC3B,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/config/chain-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAqB/D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE;QACX,4BAA4B;QAC5B,aAAa,EAAE,UAAU,CAAC;KAC3B,CAAC;CACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
2
+ import { numberConfigHelper } from '@aztec/foundation/config';
2
3
  import { EthAddress } from '@aztec/foundation/eth-address';
3
4
  export { SequencerConfigSchema } from '../interfaces/configs.js';
4
5
  export const emptyChainConfig = {
@@ -11,14 +12,19 @@ export const emptyChainConfig = {
11
12
  export const chainConfigMappings = {
12
13
  l1ChainId: {
13
14
  env: 'L1_CHAIN_ID',
14
- parseEnv: (val)=>+val,
15
- defaultValue: 31337,
15
+ ...numberConfigHelper(31337),
16
16
  description: 'The chain ID of the ethereum host.'
17
17
  },
18
18
  rollupVersion: {
19
19
  env: 'ROLLUP_VERSION',
20
20
  description: 'The version of the rollup.',
21
- parseEnv: (val)=>Number.isSafeInteger(parseInt(val, 10)) ? parseInt(val, 10) : undefined
21
+ parseEnv: (val)=>{
22
+ const parsed = parseInt(val, 10);
23
+ if (!Number.isSafeInteger(parsed)) {
24
+ throw new Error(`Invalid rollup version: ${val}`);
25
+ }
26
+ return parsed;
27
+ }
22
28
  },
23
29
  l1Contracts: {
24
30
  description: 'The deployed L1 contract addresses',
@@ -1,4 +1,4 @@
1
- import type { ConfigMappingsType } from '@aztec/foundation/config';
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
2
  import type { SequencerConfig } from '../interfaces/configs.js';
3
3
  /** Default maximum number of transactions per block. */
4
4
  export declare const DEFAULT_MAX_TXS_PER_BLOCK = 32;
@@ -8,5 +8,5 @@ export declare const DEFAULT_MAX_TXS_PER_BLOCK = 32;
8
8
  * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
9
9
  * to avoid duplication.
10
10
  */
11
- export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>>;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsd0RBQXdEO0FBQ3hELGVBQU8sTUFBTSx5QkFBeUIsS0FBSyxDQUFDO0FBRTVDOzs7OztHQUtHO0FBQ0gsZUFBTyxNQUFNLDZCQUE2QixFQUFFLGtCQUFrQixDQUM1RCxJQUFJLENBQUMsZUFBZSxFQUFFLGlCQUFpQixHQUFHLCtCQUErQixHQUFHLGdCQUFnQixDQUFDLENBc0I5RixDQUFDIn0=
11
+ export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock' | 'attestationPropagationTime'>>;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2hFLHdEQUF3RDtBQUN4RCxlQUFPLE1BQU0seUJBQXlCLEtBQUssQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSw2QkFBNkIsRUFBRSxrQkFBa0IsQ0FDNUQsSUFBSSxDQUNGLGVBQWUsRUFDZixpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FDdEcsQ0EyQkYsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAC5D,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,+BAA+B,GAAG,gBAAgB,CAAC,CAsB9F,CAAC"}
1
+ {"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAC5D,IAAI,CACF,eAAe,EACf,iBAAiB,GAAG,+BAA+B,GAAG,gBAAgB,GAAG,4BAA4B,CACtG,CA2BF,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { floatConfigHelper, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
2
+ import { DEFAULT_P2P_PROPAGATION_TIME } from '../timetable/index.js';
1
3
  /** Default maximum number of transactions per block. */ export const DEFAULT_MAX_TXS_PER_BLOCK = 32;
2
4
  /**
3
5
  * Partial sequencer config mappings for fields that need to be shared across packages.
@@ -8,17 +10,22 @@
8
10
  blockDurationMs: {
9
11
  env: 'SEQ_BLOCK_DURATION_MS',
10
12
  description: 'Duration per block in milliseconds when building multiple blocks per slot. ' + 'If undefined (default), builds a single block per slot using the full slot duration.',
11
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
13
+ ...optionalNumberConfigHelper()
12
14
  },
13
15
  expectedBlockProposalsPerSlot: {
14
16
  env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
15
17
  description: 'Expected number of block proposals per slot for P2P peer scoring. ' + '0 (default) disables block proposal scoring. Set to a positive value to enable.',
16
- parseEnv: (val)=>val ? parseInt(val, 10) : 0,
17
- defaultValue: 0
18
+ ...numberConfigHelper(0)
18
19
  },
19
20
  maxTxsPerBlock: {
20
21
  env: 'SEQ_MAX_TX_PER_BLOCK',
21
22
  description: 'The maximum number of txs to include in a block.',
22
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
23
+ ...optionalNumberConfigHelper()
24
+ },
25
+ attestationPropagationTime: {
26
+ env: 'SEQ_ATTESTATION_PROPAGATION_TIME',
27
+ description: 'How many seconds it takes for proposals and attestations to travel across the p2p layer (one-way).',
28
+ defaultValue: DEFAULT_P2P_PROPAGATION_TIME,
29
+ ...floatConfigHelper(DEFAULT_P2P_PROPAGATION_TIME)
23
30
  }
24
31
  };
@@ -5,7 +5,7 @@ import type { ContractInstance } from './interfaces/contract_instance.js';
5
5
  /**
6
6
  * Returns the deployment address for a given contract instance.
7
7
  * ```
8
- * salted_initialization_hash = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [salt, initialization_hash, deployer])
8
+ * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer])
9
9
  * partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
10
10
  * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
11
11
  * ```
@@ -8,7 +8,7 @@ import { computeAddress } from '../keys/index.js';
8
8
  /**
9
9
  * Returns the deployment address for a given contract instance.
10
10
  * ```
11
- * salted_initialization_hash = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [salt, initialization_hash, deployer])
11
+ * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer])
12
12
  * partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
13
13
  * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
14
14
  * ```
@@ -35,7 +35,7 @@ import { computeAddress } from '../keys/index.js';
35
35
  instance.salt,
36
36
  instance.initializationHash,
37
37
  instance.deployer
38
- ], DomainSeparator.PARTIAL_ADDRESS);
38
+ ], DomainSeparator.SALTED_INITIALIZATION_HASH);
39
39
  }
40
40
  /**
41
41
  * Computes the initialization hash for an instance given its constructor function and arguments.
@@ -7,4 +7,4 @@ export declare function computePrivateFunctionsTree(fns: PrivateFunction[]): Pro
7
7
  export declare function computePrivateFunctionsRoot(fns: PrivateFunction[]): Promise<Fr>;
8
8
  /** Returns the leaf for a given private function. */
9
9
  export declare function computePrivateFunctionLeaf(fn: PrivateFunction): Promise<Buffer>;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3ByaXZhdGVfZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU90RSw0RUFBNEU7QUFDNUUsd0JBQXNCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBSTdGO0FBRUQsbUZBQW1GO0FBQ25GLHdCQUFzQiwyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUlyRjtBQU9ELHFEQUFxRDtBQUNyRCx3QkFBc0IsMEJBQTBCLENBQUMsRUFBRSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJGIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3ByaXZhdGVfZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUdoRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU90RSw0RUFBNEU7QUFDNUUsd0JBQXNCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBSTdGO0FBRUQsbUZBQW1GO0FBQ25GLHdCQUFzQiwyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUlyRjtBQU9ELHFEQUFxRDtBQUNyRCx3QkFBc0IsMEJBQTBCLENBQUMsRUFBRSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_function.d.ts","sourceRoot":"","sources":["../../src/contract/private_function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOtE,4EAA4E;AAC5E,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAI7F;AAED,mFAAmF;AACnF,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAIrF;AAOD,qDAAqD;AACrD,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAErF"}
1
+ {"version":3,"file":"private_function.d.ts","sourceRoot":"","sources":["../../src/contract/private_function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAGhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOtE,4EAA4E;AAC5E,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAI7F;AAED,mFAAmF;AACnF,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAIrF;AAOD,qDAAqD;AACrD,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAErF"}
@@ -2,6 +2,7 @@ import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
2
2
  import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { MerkleTreeCalculator } from '@aztec/foundation/trees';
5
+ import { computeMerkleHash } from '../hash/hash.js';
5
6
  // Memoize the merkle tree calculators to avoid re-computing the zero-hash for each level in each call
6
7
  let privateFunctionTreeCalculator;
7
8
  const PRIVATE_FUNCTION_SIZE = 2;
@@ -30,10 +31,7 @@ function computePrivateFunctionLeaves(fns) {
30
31
  async function getPrivateFunctionTreeCalculator() {
31
32
  if (!privateFunctionTreeCalculator) {
32
33
  const functionTreeZeroLeaf = (await poseidon2Hash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))).toBuffer();
33
- privateFunctionTreeCalculator = await MerkleTreeCalculator.create(FUNCTION_TREE_HEIGHT, functionTreeZeroLeaf, async (left, right)=>(await poseidon2Hash([
34
- left,
35
- right
36
- ])).toBuffer());
34
+ privateFunctionTreeCalculator = await MerkleTreeCalculator.create(FUNCTION_TREE_HEIGHT, functionTreeZeroLeaf, async (left, right)=>(await computeMerkleHash(Fr.fromBuffer(left), Fr.fromBuffer(right))).toBuffer());
37
35
  }
38
36
  return privateFunctionTreeCalculator;
39
37
  }
@@ -74,6 +74,8 @@ export declare function getProofSubmissionDeadlineEpoch(epochNumber: EpochNumber
74
74
  * Computed as the start of the given epoch plus the proof submission window.
75
75
  */
76
76
  export declare function getProofSubmissionDeadlineTimestamp(epochNumber: EpochNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'proofSubmissionEpochs'>): bigint;
77
+ /** Computes the quorum size required for a committee (⌊2n/3⌋ + 1). */
78
+ export declare function computeQuorum(committeeSize: number): number;
77
79
  /** Returns the timestamp to start building a block for a given L2 slot. Computed as the start timestamp of the slot minus one L1 slot duration. */
78
80
  export declare function getSlotStartBuildTimestamp(slotNumber: SlotNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>): number;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaC1oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixlQUFlLEVBQUUsTUFBTSxDQUFDO0NBQ3pCLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCLEVBQUUsaUJBU3BDLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFXbkMsQ0FBQztBQUVGLGlEQUFpRDtBQUNqRCx3QkFBZ0IsbUJBQW1CLENBQ2pDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsQ0FBQyxVQUdyRTtBQUVELHFEQUFxRDtBQUNyRCx3QkFBZ0Isa0JBQWtCLENBQ2hDLEVBQUUsRUFBRSxNQUFNLEVBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxDQUFDLEdBQ25FLFVBQVUsQ0FJWjtBQUVELDBGQUEwRjtBQUMxRix3QkFBZ0Isc0JBQXNCLENBQ3BDLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEdBQzNFLE1BQU0sQ0FLUjtBQUVELHdFQUF3RTtBQUN4RSx3QkFBZ0IsK0JBQStCLENBQzdDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixNQUFNLENBRVI7QUFFRCxzRkFBc0Y7QUFDdEYsd0JBQWdCLG9CQUFvQixDQUNsQyxrQkFBa0IsRUFBRSxNQUFNLEVBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixVQUFVLENBR1o7QUFFRCxzREFBc0Q7QUFDdEQsd0JBQWdCLHlCQUF5QixDQUN2QyxFQUFFLEVBQUUsTUFBTSxFQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FDckYsV0FBVyxDQUViO0FBRUQsaURBQWlEO0FBQ2pELHdCQUFnQixjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FFakg7QUFFRCwwRUFBMEU7QUFDMUUsd0JBQWdCLG9CQUFvQixDQUNsQyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUNsRCxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FHMUI7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsR0FDOUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBU2xCO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFJdkY7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsK0JBQStCLENBQzdDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsR0FDMUQsV0FBVyxDQUViO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLG1DQUFtQyxDQUNqRCxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLHVCQUF1QixDQUFDLFVBT2pIO0FBRUQsbUpBQW1KO0FBQ25KLHdCQUFnQiwwQkFBMEIsQ0FDeEMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQzVGLE1BQU0sQ0FFUiJ9
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaC1oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixlQUFlLEVBQUUsTUFBTSxDQUFDO0NBQ3pCLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCLEVBQUUsaUJBU3BDLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFXbkMsQ0FBQztBQUVGLGlEQUFpRDtBQUNqRCx3QkFBZ0IsbUJBQW1CLENBQ2pDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsQ0FBQyxVQUdyRTtBQUVELHFEQUFxRDtBQUNyRCx3QkFBZ0Isa0JBQWtCLENBQ2hDLEVBQUUsRUFBRSxNQUFNLEVBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxDQUFDLEdBQ25FLFVBQVUsQ0FJWjtBQUVELDBGQUEwRjtBQUMxRix3QkFBZ0Isc0JBQXNCLENBQ3BDLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEdBQzNFLE1BQU0sQ0FLUjtBQUVELHdFQUF3RTtBQUN4RSx3QkFBZ0IsK0JBQStCLENBQzdDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixNQUFNLENBRVI7QUFFRCxzRkFBc0Y7QUFDdEYsd0JBQWdCLG9CQUFvQixDQUNsQyxrQkFBa0IsRUFBRSxNQUFNLEVBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixVQUFVLENBR1o7QUFFRCxzREFBc0Q7QUFDdEQsd0JBQWdCLHlCQUF5QixDQUN2QyxFQUFFLEVBQUUsTUFBTSxFQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FDckYsV0FBVyxDQUViO0FBRUQsaURBQWlEO0FBQ2pELHdCQUFnQixjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FFakg7QUFFRCwwRUFBMEU7QUFDMUUsd0JBQWdCLG9CQUFvQixDQUNsQyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUNsRCxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FHMUI7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsR0FDOUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBU2xCO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFJdkY7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsK0JBQStCLENBQzdDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsR0FDMUQsV0FBVyxDQUViO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLG1DQUFtQyxDQUNqRCxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLHVCQUF1QixDQUFDLFVBT2pIO0FBRUQsMEVBQXNFO0FBQ3RFLHdCQUFnQixhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRTNEO0FBRUQsbUpBQW1KO0FBQ25KLHdCQUFnQiwwQkFBMEIsQ0FDeEMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQzVGLE1BQU0sQ0FFUiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,9 @@ export const L1RollupConstantsSchema = zodFor()(z.object({
86
86
  const [deadlineSlot] = getSlotRangeForEpoch(deadlineEpoch, constants);
87
87
  return getTimestampForSlot(deadlineSlot, constants);
88
88
  }
89
+ /** Computes the quorum size required for a committee (⌊2n/3⌋ + 1). */ export function computeQuorum(committeeSize) {
90
+ return Math.floor(committeeSize * 2 / 3) + 1;
91
+ }
89
92
  /** Returns the timestamp to start building a block for a given L2 slot. Computed as the start timestamp of the slot minus one L1 slot duration. */ export function getSlotStartBuildTimestamp(slotNumber, constants) {
90
93
  return Number(constants.l1GenesisTime) + slotNumber * constants.slotDuration - constants.ethereumSlotDuration;
91
94
  }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * TypeScript port of fee computation logic from FeeLib.sol.
3
+ * Used to predict worst-case min fees over a future window of L2 slots.
4
+ */
5
+ export declare const MINIMUM_CONGESTION_MULTIPLIER = 1000000000n;
6
+ export declare const L1_GAS_PER_CHECKPOINT_PROPOSED = 300000n;
7
+ export declare const L1_GAS_PER_EPOCH_VERIFIED = 3600000n;
8
+ export declare const BLOBS_PER_CHECKPOINT = 3n;
9
+ export declare const BLOB_GAS_PER_BLOB: bigint;
10
+ export declare const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854700854n;
11
+ export declare const MAGIC_CONGESTION_VALUE_DIVISOR = 100000000n;
12
+ export declare const ETH_PER_FEE_ASSET_PRECISION = 1000000000000n;
13
+ export declare const MIN_ETH_PER_FEE_ASSET = 100n;
14
+ /** Number of L2 slots of lag before new oracle values activate. Defines the prediction window. */
15
+ export declare const FEE_ORACLE_LAG = 2;
16
+ /** Expected mana usage per checkpoint for fee prediction. */
17
+ export declare enum ManaUsageEstimate {
18
+ /** No usage — fees decrease as congestion drains. */
19
+ None = "none",
20
+ /** Target usage — congestion stays roughly flat (steady state). */
21
+ Target = "target",
22
+ /** Limit usage (2x target) — worst case, congestion grows maximally. */
23
+ Limit = "limit"
24
+ }
25
+ /** Parameters for computing the mana min fee at a given point in time. */
26
+ export type ManaMinFeeParams = {
27
+ l1BaseFee: bigint;
28
+ l1BlobFee: bigint;
29
+ manaTarget: bigint;
30
+ epochDuration: bigint;
31
+ provingCostPerManaEth: bigint;
32
+ excessMana: bigint;
33
+ ethPerFeeAsset: bigint;
34
+ };
35
+ /**
36
+ * Taylor series approximation of `factor * e^(numerator/denominator)`.
37
+ * Direct port of FeeLib.sol fakeExponential (EIP-4844 style).
38
+ */
39
+ export declare function fakeExponential(factor: bigint, numerator: bigint, denominator: bigint): bigint;
40
+ /** Computes excess mana for the next checkpoint, clamped to zero. */
41
+ export declare function computeExcessMana(prevExcessMana: bigint, prevManaUsed: bigint, manaTarget: bigint): bigint;
42
+ /** Computes the congestion multiplier from excess mana (1e9 = no congestion). */
43
+ export declare function computeCongestionMultiplier(excessMana: bigint, manaTarget: bigint): bigint;
44
+ /**
45
+ * Computes the full mana min fee (sequencer + prover + congestion) in fee asset terms.
46
+ * Mirrors FeeLib.getManaMinFeeComponentsAt + summedMinFee.
47
+ */
48
+ export declare function computeManaMinFee(params: ManaMinFeeParams): bigint;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX21hdGguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvZmVlX21hdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsZUFBTyxNQUFNLDZCQUE2QixjQUFpQixDQUFDO0FBQzVELGVBQU8sTUFBTSw4QkFBOEIsVUFBVyxDQUFDO0FBQ3ZELGVBQU8sTUFBTSx5QkFBeUIsV0FBYSxDQUFDO0FBQ3BELGVBQU8sTUFBTSxvQkFBb0IsS0FBSyxDQUFDO0FBQ3ZDLGVBQU8sTUFBTSxpQkFBaUIsUUFBWSxDQUFDO0FBQzNDLGVBQU8sTUFBTSxpQ0FBaUMsYUFBZSxDQUFDO0FBQzlELGVBQU8sTUFBTSw4QkFBOEIsYUFBZSxDQUFDO0FBQzNELGVBQU8sTUFBTSwyQkFBMkIsaUJBQXFCLENBQUM7QUFDOUQsZUFBTyxNQUFNLHFCQUFxQixPQUFPLENBQUM7QUFFMUMsa0dBQWtHO0FBQ2xHLGVBQU8sTUFBTSxjQUFjLElBQUksQ0FBQztBQUVoQyw2REFBNkQ7QUFDN0Qsb0JBQVksaUJBQWlCO0lBQzNCLHVEQUFxRDtJQUNyRCxJQUFJLFNBQVM7SUFDYixxRUFBbUU7SUFDbkUsTUFBTSxXQUFXO0lBQ2pCLDBFQUF3RTtJQUN4RSxLQUFLLFVBQVU7Q0FDaEI7QUFFRCwwRUFBMEU7QUFDMUUsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN4QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBVTlGO0FBRUQscUVBQXFFO0FBQ3JFLHdCQUFnQixpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRzFHO0FBRUQsaUZBQWlGO0FBQ2pGLHdCQUFnQiwyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUkxRjtBQWVEOzs7R0FHRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsTUFBTSxDQWlDbEUifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee_math.d.ts","sourceRoot":"","sources":["../../src/gas/fee_math.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,6BAA6B,cAAiB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,UAAW,CAAC;AACvD,eAAO,MAAM,yBAAyB,WAAa,CAAC;AACpD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAC3C,eAAO,MAAM,iCAAiC,aAAe,CAAC;AAC9D,eAAO,MAAM,8BAA8B,aAAe,CAAC;AAC3D,eAAO,MAAM,2BAA2B,iBAAqB,CAAC;AAC9D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,kGAAkG;AAClG,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,6DAA6D;AAC7D,oBAAY,iBAAiB;IAC3B,uDAAqD;IACrD,IAAI,SAAS;IACb,qEAAmE;IACnE,MAAM,WAAW;IACjB,0EAAwE;IACxE,KAAK,UAAU;CAChB;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAU9F;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1G;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1F;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiClE"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * TypeScript port of fee computation logic from FeeLib.sol.
3
+ * Used to predict worst-case min fees over a future window of L2 slots.
4
+ */ // Constants matching FeeLib.sol
5
+ export const MINIMUM_CONGESTION_MULTIPLIER = 1_000_000_000n;
6
+ export const L1_GAS_PER_CHECKPOINT_PROPOSED = 300_000n;
7
+ export const L1_GAS_PER_EPOCH_VERIFIED = 3_600_000n;
8
+ export const BLOBS_PER_CHECKPOINT = 3n;
9
+ export const BLOB_GAS_PER_BLOB = 2n ** 17n;
10
+ export const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854_700_854n;
11
+ export const MAGIC_CONGESTION_VALUE_DIVISOR = 100_000_000n;
12
+ export const ETH_PER_FEE_ASSET_PRECISION = 1_000_000_000_000n;
13
+ export const MIN_ETH_PER_FEE_ASSET = 100n;
14
+ /** Number of L2 slots of lag before new oracle values activate. Defines the prediction window. */ export const FEE_ORACLE_LAG = 2;
15
+ /** Expected mana usage per checkpoint for fee prediction. */ export var ManaUsageEstimate = /*#__PURE__*/ function(ManaUsageEstimate) {
16
+ /** No usage — fees decrease as congestion drains. */ ManaUsageEstimate["None"] = "none";
17
+ /** Target usage — congestion stays roughly flat (steady state). */ ManaUsageEstimate["Target"] = "target";
18
+ /** Limit usage (2x target) — worst case, congestion grows maximally. */ ManaUsageEstimate["Limit"] = "limit";
19
+ return ManaUsageEstimate;
20
+ }({});
21
+ /**
22
+ * Taylor series approximation of `factor * e^(numerator/denominator)`.
23
+ * Direct port of FeeLib.sol fakeExponential (EIP-4844 style).
24
+ */ export function fakeExponential(factor, numerator, denominator) {
25
+ let i = 1n;
26
+ let output = 0n;
27
+ let numeratorAccumulator = factor * denominator;
28
+ while(numeratorAccumulator > 0n){
29
+ output += numeratorAccumulator;
30
+ numeratorAccumulator = numeratorAccumulator * numerator / (denominator * i);
31
+ i += 1n;
32
+ }
33
+ return output / denominator;
34
+ }
35
+ /** Computes excess mana for the next checkpoint, clamped to zero. */ export function computeExcessMana(prevExcessMana, prevManaUsed, manaTarget) {
36
+ const sum = prevExcessMana + prevManaUsed;
37
+ return sum > manaTarget ? sum - manaTarget : 0n;
38
+ }
39
+ /** Computes the congestion multiplier from excess mana (1e9 = no congestion). */ export function computeCongestionMultiplier(excessMana, manaTarget) {
40
+ const denominator = manaTarget * MAGIC_CONGESTION_VALUE_MULTIPLIER / MAGIC_CONGESTION_VALUE_DIVISOR;
41
+ const cappedNumerator = excessMana < denominator * 100n ? excessMana : denominator * 100n;
42
+ return fakeExponential(MINIMUM_CONGESTION_MULTIPLIER, cappedNumerator, denominator);
43
+ }
44
+ /** Ceiling division for positive bigints. */ function ceilDiv(a, b) {
45
+ return (a + b - 1n) / b;
46
+ }
47
+ /** Converts an ETH value to fee asset value using ethPerFeeAsset (1e12 precision). */ function toFeeAsset(ethValue, ethPerFeeAsset) {
48
+ if (ethPerFeeAsset === 0n) {
49
+ return 0n;
50
+ }
51
+ return ceilDiv(ethValue * ETH_PER_FEE_ASSET_PRECISION, ethPerFeeAsset);
52
+ }
53
+ /**
54
+ * Computes the full mana min fee (sequencer + prover + congestion) in fee asset terms.
55
+ * Mirrors FeeLib.getManaMinFeeComponentsAt + summedMinFee.
56
+ */ export function computeManaMinFee(params) {
57
+ const { l1BaseFee, l1BlobFee, manaTarget, epochDuration, provingCostPerManaEth, excessMana, ethPerFeeAsset } = params;
58
+ if (manaTarget === 0n) {
59
+ return 0n;
60
+ }
61
+ // Sequencer cost per mana (in ETH)
62
+ const ethUsed = L1_GAS_PER_CHECKPOINT_PROPOSED * l1BaseFee + BLOBS_PER_CHECKPOINT * BLOB_GAS_PER_BLOB * l1BlobFee;
63
+ const sequencerCostEth = ceilDiv(ethUsed, manaTarget);
64
+ // Prover cost per mana (in ETH): L1 verification gas + governance-set proving cost
65
+ const proverCostEth = ceilDiv(ceilDiv(L1_GAS_PER_EPOCH_VERIFIED * l1BaseFee, epochDuration), manaTarget) + provingCostPerManaEth;
66
+ // Total base cost in ETH (congestion is computed on this)
67
+ const totalEth = sequencerCostEth + proverCostEth;
68
+ // Congestion multiplier and cost (in ETH)
69
+ const congestionMul = computeCongestionMultiplier(excessMana, manaTarget);
70
+ const congestionCostEth = totalEth * congestionMul / MINIMUM_CONGESTION_MULTIPLIER - totalEth;
71
+ // Convert all components to fee asset
72
+ const clampedEthPerFeeAsset = ethPerFeeAsset < MIN_ETH_PER_FEE_ASSET ? MIN_ETH_PER_FEE_ASSET : ethPerFeeAsset;
73
+ const sequencerCost = toFeeAsset(sequencerCostEth, clampedEthPerFeeAsset);
74
+ const proverCost = toFeeAsset(proverCostEth, clampedEthPerFeeAsset);
75
+ const congestionCost = toFeeAsset(congestionCostEth, clampedEthPerFeeAsset);
76
+ const total = sequencerCost + proverCost + congestionCost;
77
+ // Cap at uint128 max (matching FeeLib.summedMinFee)
78
+ const UINT128_MAX = (1n << 128n) - 1n;
79
+ return total < UINT128_MAX ? total : UINT128_MAX;
80
+ }