@aztec/stdlib 5.0.0-nightly.20260601 → 5.0.0-nightly.20260610

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 (230) hide show
  1. package/dest/abi/contract_artifact.d.ts +14 -1
  2. package/dest/abi/contract_artifact.d.ts.map +1 -1
  3. package/dest/abi/contract_artifact.js +17 -0
  4. package/dest/aztec-address/index.d.ts +4 -3
  5. package/dest/aztec-address/index.d.ts.map +1 -1
  6. package/dest/aztec-address/index.js +5 -2
  7. package/dest/block/l2_block_source.d.ts +12 -6
  8. package/dest/block/l2_block_source.d.ts.map +1 -1
  9. package/dest/checkpoint/checkpoint.js +2 -2
  10. package/dest/checkpoint/validate.d.ts +11 -3
  11. package/dest/checkpoint/validate.d.ts.map +1 -1
  12. package/dest/checkpoint/validate.js +9 -6
  13. package/dest/config/index.d.ts +1 -2
  14. package/dest/config/index.d.ts.map +1 -1
  15. package/dest/config/index.js +0 -1
  16. package/dest/config/sequencer-config.d.ts +2 -2
  17. package/dest/config/sequencer-config.d.ts.map +1 -1
  18. package/dest/config/sequencer-config.js +19 -1
  19. package/dest/deserialization/index.d.ts +35 -3
  20. package/dest/deserialization/index.d.ts.map +1 -1
  21. package/dest/deserialization/index.js +32 -1
  22. package/dest/gas/gas.d.ts +4 -3
  23. package/dest/gas/gas.d.ts.map +1 -1
  24. package/dest/gas/gas.js +6 -3
  25. package/dest/gas/gas_fees.d.ts +4 -3
  26. package/dest/gas/gas_fees.d.ts.map +1 -1
  27. package/dest/gas/gas_fees.js +7 -3
  28. package/dest/gas/gas_settings.d.ts +4 -3
  29. package/dest/gas/gas_settings.d.ts.map +1 -1
  30. package/dest/gas/gas_settings.js +6 -3
  31. package/dest/interfaces/archiver.d.ts +7 -9
  32. package/dest/interfaces/archiver.d.ts.map +1 -1
  33. package/dest/interfaces/archiver.js +11 -5
  34. package/dest/interfaces/aztec-node-admin.d.ts +6 -3
  35. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  36. package/dest/interfaces/aztec-node.d.ts +51 -13
  37. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  38. package/dest/interfaces/aztec-node.js +25 -6
  39. package/dest/interfaces/block_response.d.ts +5 -5
  40. package/dest/interfaces/block_response.d.ts.map +1 -1
  41. package/dest/interfaces/checkpoint_response.d.ts +5 -5
  42. package/dest/interfaces/checkpoint_response.d.ts.map +1 -1
  43. package/dest/interfaces/configs.d.ts +17 -5
  44. package/dest/interfaces/configs.d.ts.map +1 -1
  45. package/dest/interfaces/configs.js +3 -1
  46. package/dest/interfaces/p2p.d.ts +8 -3
  47. package/dest/interfaces/p2p.d.ts.map +1 -1
  48. package/dest/interfaces/p2p.js +3 -1
  49. package/dest/interfaces/prover-client.d.ts +2 -3
  50. package/dest/interfaces/prover-client.d.ts.map +1 -1
  51. package/dest/interfaces/prover-node.d.ts +8 -3
  52. package/dest/interfaces/prover-node.d.ts.map +1 -1
  53. package/dest/interfaces/prover-node.js +9 -7
  54. package/dest/interfaces/server.d.ts +1 -2
  55. package/dest/interfaces/server.d.ts.map +1 -1
  56. package/dest/interfaces/server.js +0 -1
  57. package/dest/interfaces/validator.d.ts +9 -2
  58. package/dest/interfaces/validator.d.ts.map +1 -1
  59. package/dest/interfaces/validator.js +3 -1
  60. package/dest/kernel/log_hash.d.ts +6 -2
  61. package/dest/kernel/log_hash.d.ts.map +1 -1
  62. package/dest/kernel/log_hash.js +21 -9
  63. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -5
  64. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  65. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  66. package/dest/kernel/private_to_avm_accumulated_data.d.ts +6 -4
  67. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  68. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  69. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  70. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  71. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  72. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -3
  73. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  74. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  75. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +4 -3
  76. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  77. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  78. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +4 -3
  79. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  80. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  81. package/dest/kernel/public_call_request.d.ts +8 -5
  82. package/dest/kernel/public_call_request.d.ts.map +1 -1
  83. package/dest/kernel/public_call_request.js +16 -7
  84. package/dest/logs/app_tagging_secret_kind.d.ts +2 -1
  85. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -1
  86. package/dest/logs/app_tagging_secret_kind.js +13 -0
  87. package/dest/logs/contract_class_log.d.ts +5 -3
  88. package/dest/logs/contract_class_log.d.ts.map +1 -1
  89. package/dest/logs/contract_class_log.js +11 -9
  90. package/dest/logs/log_result.d.ts +3 -3
  91. package/dest/logs/log_result.d.ts.map +1 -1
  92. package/dest/logs/message_context.d.ts +3 -2
  93. package/dest/logs/message_context.d.ts.map +1 -1
  94. package/dest/logs/message_context.js +4 -0
  95. package/dest/logs/private_log.d.ts +3 -2
  96. package/dest/logs/private_log.d.ts.map +1 -1
  97. package/dest/logs/private_log.js +6 -3
  98. package/dest/messaging/l2_to_l1_membership.d.ts +11 -4
  99. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  100. package/dest/messaging/l2_to_l1_membership.js +22 -7
  101. package/dest/messaging/l2_to_l1_message.d.ts +6 -2
  102. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  103. package/dest/messaging/l2_to_l1_message.js +21 -12
  104. package/dest/proofs/chonk_proof.d.ts +6 -4
  105. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  106. package/dest/proofs/chonk_proof.js +20 -18
  107. package/dest/timetable/budgets.d.ts +55 -0
  108. package/dest/timetable/budgets.d.ts.map +1 -0
  109. package/dest/timetable/budgets.js +55 -0
  110. package/dest/timetable/consensus_timetable.d.ts +72 -0
  111. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  112. package/dest/timetable/consensus_timetable.js +91 -0
  113. package/dest/timetable/index.d.ts +4 -87
  114. package/dest/timetable/index.d.ts.map +1 -1
  115. package/dest/timetable/index.js +3 -243
  116. package/dest/timetable/proposer_timetable.d.ts +112 -0
  117. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  118. package/dest/timetable/proposer_timetable.js +161 -0
  119. package/dest/trees/append_only_tree_snapshot.d.ts +4 -3
  120. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  121. package/dest/trees/append_only_tree_snapshot.js +6 -3
  122. package/dest/tx/block_header.d.ts +4 -3
  123. package/dest/tx/block_header.d.ts.map +1 -1
  124. package/dest/tx/block_header.js +6 -3
  125. package/dest/tx/global_variables.d.ts +4 -3
  126. package/dest/tx/global_variables.d.ts.map +1 -1
  127. package/dest/tx/global_variables.js +8 -12
  128. package/dest/tx/hashed_values.d.ts +4 -3
  129. package/dest/tx/hashed_values.d.ts.map +1 -1
  130. package/dest/tx/hashed_values.js +6 -3
  131. package/dest/tx/indexed_tx_effect.d.ts +5 -2
  132. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  133. package/dest/tx/indexed_tx_effect.js +8 -4
  134. package/dest/tx/partial_state_reference.d.ts +4 -3
  135. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  136. package/dest/tx/partial_state_reference.js +6 -3
  137. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  138. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  139. package/dest/tx/public_call_request_with_calldata.js +6 -3
  140. package/dest/tx/state_reference.d.ts +4 -3
  141. package/dest/tx/state_reference.d.ts.map +1 -1
  142. package/dest/tx/state_reference.js +6 -4
  143. package/dest/tx/tree_snapshots.d.ts +4 -3
  144. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  145. package/dest/tx/tree_snapshots.js +6 -4
  146. package/dest/tx/tx.d.ts +20 -3
  147. package/dest/tx/tx.d.ts.map +1 -1
  148. package/dest/tx/tx.js +44 -13
  149. package/dest/tx/tx_constant_data.d.ts +4 -3
  150. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  151. package/dest/tx/tx_constant_data.js +6 -3
  152. package/dest/tx/tx_context.d.ts +4 -3
  153. package/dest/tx/tx_context.d.ts.map +1 -1
  154. package/dest/tx/tx_context.js +6 -6
  155. package/dest/tx/tx_hash.d.ts +5 -3
  156. package/dest/tx/tx_hash.d.ts.map +1 -1
  157. package/dest/tx/tx_hash.js +13 -5
  158. package/dest/tx/tx_receipt.d.ts +143 -60
  159. package/dest/tx/tx_receipt.d.ts.map +1 -1
  160. package/dest/tx/tx_receipt.js +141 -45
  161. package/dest/types/shared.d.ts +4 -3
  162. package/dest/types/shared.d.ts.map +1 -1
  163. package/dest/types/shared.js +6 -3
  164. package/package.json +8 -8
  165. package/src/abi/contract_artifact.ts +19 -0
  166. package/src/aztec-address/index.ts +8 -3
  167. package/src/block/l2_block_source.ts +15 -5
  168. package/src/checkpoint/checkpoint.ts +2 -2
  169. package/src/checkpoint/validate.ts +16 -6
  170. package/src/config/index.ts +0 -1
  171. package/src/config/sequencer-config.ts +30 -1
  172. package/src/deserialization/index.ts +35 -2
  173. package/src/gas/gas.ts +8 -3
  174. package/src/gas/gas_fees.ts +9 -9
  175. package/src/gas/gas_settings.ts +8 -3
  176. package/src/interfaces/archiver.ts +15 -10
  177. package/src/interfaces/aztec-node.ts +83 -15
  178. package/src/interfaces/block_response.ts +4 -4
  179. package/src/interfaces/checkpoint_response.ts +4 -4
  180. package/src/interfaces/configs.ts +18 -4
  181. package/src/interfaces/p2p.ts +9 -2
  182. package/src/interfaces/prover-client.ts +1 -3
  183. package/src/interfaces/prover-node.ts +13 -6
  184. package/src/interfaces/server.ts +0 -1
  185. package/src/interfaces/validator.ts +12 -1
  186. package/src/kernel/log_hash.ts +29 -9
  187. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  188. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  189. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  190. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  191. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  192. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  193. package/src/kernel/public_call_request.ts +22 -7
  194. package/src/logs/app_tagging_secret_kind.ts +15 -0
  195. package/src/logs/contract_class_log.ts +15 -5
  196. package/src/logs/log_result.ts +2 -2
  197. package/src/logs/message_context.ts +5 -1
  198. package/src/logs/private_log.ts +9 -3
  199. package/src/messaging/l2_to_l1_membership.ts +28 -11
  200. package/src/messaging/l2_to_l1_message.ts +29 -9
  201. package/src/proofs/chonk_proof.ts +24 -11
  202. package/src/timetable/README.md +601 -0
  203. package/src/timetable/budgets.ts +84 -0
  204. package/src/timetable/consensus_timetable.ts +132 -0
  205. package/src/timetable/index.ts +3 -361
  206. package/src/timetable/proposer_timetable.ts +214 -0
  207. package/src/timetable/timetable-example.svg +108 -0
  208. package/src/trees/append_only_tree_snapshot.ts +8 -3
  209. package/src/tx/block_header.ts +8 -3
  210. package/src/tx/global_variables.ts +10 -18
  211. package/src/tx/hashed_values.ts +8 -3
  212. package/src/tx/indexed_tx_effect.ts +17 -4
  213. package/src/tx/partial_state_reference.ts +8 -3
  214. package/src/tx/public_call_request_with_calldata.ts +8 -3
  215. package/src/tx/state_reference.ts +9 -4
  216. package/src/tx/tree_snapshots.ts +9 -4
  217. package/src/tx/tx.ts +58 -11
  218. package/src/tx/tx_constant_data.ts +8 -3
  219. package/src/tx/tx_context.ts +8 -3
  220. package/src/tx/tx_hash.ts +20 -5
  221. package/src/tx/tx_receipt.ts +263 -71
  222. package/src/types/shared.ts +8 -3
  223. package/dest/config/pipelining-config.d.ts +0 -15
  224. package/dest/config/pipelining-config.d.ts.map +0 -1
  225. package/dest/config/pipelining-config.js +0 -18
  226. package/dest/interfaces/epoch-prover.d.ts +0 -57
  227. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  228. package/dest/interfaces/epoch-prover.js +0 -1
  229. package/src/config/pipelining-config.ts +0 -31
  230. package/src/interfaces/epoch-prover.ts +0 -72
@@ -1,5 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { BufferReader } from '@aztec/foundation/serialize';
2
+ import { BufferReader, BufferSink } from '@aztec/foundation/serialize';
3
3
  /**
4
4
  * Serialization format detection for ChonkProof is value-based on the leading uint32:
5
5
  * - EMPTY: [0: uint32] → total = 4 bytes
@@ -52,7 +52,8 @@ export declare class ChonkProof {
52
52
  * If compressed bytes are available, uses the compressed format (~1.7x smaller).
53
53
  * Otherwise falls back to legacy field element format.
54
54
  */
55
- toBuffer(): Buffer<ArrayBufferLike>;
55
+ toBuffer(): Buffer;
56
+ toBuffer(sink: BufferSink): void;
56
57
  }
57
58
  export declare class ChonkProofWithPublicInputs {
58
59
  fieldsWithPublicInputs: Fr[];
@@ -70,7 +71,8 @@ export declare class ChonkProofWithPublicInputs {
70
71
  static get schema(): import("zod").ZodType<ChonkProofWithPublicInputs, string, import("zod/v4/core").$ZodTypeInternals<ChonkProofWithPublicInputs, string>>;
71
72
  toJSON(): Buffer<ArrayBufferLike>;
72
73
  static fromBuffer(buffer: Buffer | BufferReader): ChonkProofWithPublicInputs;
73
- toBuffer(): Buffer<ArrayBufferLike>;
74
+ toBuffer(): Buffer;
75
+ toBuffer(sink: BufferSink): void;
74
76
  static fromBufferArray(fields: Uint8Array[]): ChonkProofWithPublicInputs;
75
77
  }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvbmtfcHJvb2YuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9vZnMvY2hvbmtfcHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQW9DLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Y7Ozs7Ozs7Ozs7O0dBV0c7QUFHSCxxQkFBYSxVQUFVO0lBWVosTUFBTSxFQUFFLEVBQUUsRUFBRTtJQVhyQjs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRWhDLFlBSVMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUNuQixlQUFlLENBQUMsRUFBRSxNQUFNLEVBT3pCO0lBRU0sa0JBQWtCLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSw4QkFFM0M7SUFFTSxPQUFPLFlBRWI7SUFFRCxNQUFNLENBQUMsS0FBSyxlQUVYO0lBRUQsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVELE1BQU0sS0FBSyxNQUFNLDJHQUVoQjtJQUdELE1BQU0sNEJBRUw7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxVQUFVLENBcUIzRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FrQnpEO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsNEJBV2Q7Q0FDRjtBQUVELHFCQUFhLDBCQUEwQjtJQVc1QixzQkFBc0IsRUFBRSxFQUFFLEVBQUU7SUFWckM7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVoQyxZQUdTLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQU1wQztJQUVNLGVBQWUsU0FNckI7SUFFTSxrQkFBa0IsZUFPeEI7SUFFTSxPQUFPLFlBRWI7SUFFRCxNQUFNLENBQUMsS0FBSywrQkFFWDtJQUVELE1BQU0sS0FBSyxNQUFNLDJJQUVoQjtJQUdELE1BQU0sNEJBRUw7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLDBCQUEwQixDQUszRTtJQUVNLFFBQVEsNEJBRWQ7SUFHRCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRywwQkFBMEIsQ0FHdkU7Q0FDRiJ9
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvbmtfcHJvb2YuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9vZnMvY2hvbmtfcHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdkU7Ozs7Ozs7Ozs7O0dBV0c7QUFHSCxxQkFBYSxVQUFVO0lBWVosTUFBTSxFQUFFLEVBQUUsRUFBRTtJQVhyQjs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRWhDLFlBSVMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUNuQixlQUFlLENBQUMsRUFBRSxNQUFNLEVBT3pCO0lBRU0sa0JBQWtCLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSw4QkFFM0M7SUFFTSxPQUFPLFlBRWI7SUFFRCxNQUFNLENBQUMsS0FBSyxlQUVYO0lBRUQsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVELE1BQU0sS0FBSyxNQUFNLDJHQUVoQjtJQUdELE1BQU0sNEJBRUw7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxVQUFVLENBcUIzRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FrQnpEO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0NBa0J6QztBQUVELHFCQUFhLDBCQUEwQjtJQVc1QixzQkFBc0IsRUFBRSxFQUFFLEVBQUU7SUFWckM7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVoQyxZQUdTLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQU1wQztJQUVNLGVBQWUsU0FNckI7SUFFTSxrQkFBa0IsZUFPeEI7SUFFTSxPQUFPLFlBRWI7SUFFRCxNQUFNLENBQUMsS0FBSywrQkFFWDtJQUVELE1BQU0sS0FBSyxNQUFNLDJJQUVoQjtJQUdELE1BQU0sNEJBRUw7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLDBCQUEwQixDQUszRTtJQUVNLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBVXhDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLDBCQUEwQixDQUd2RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"chonk_proof.d.ts","sourceRoot":"","sources":["../../src/proofs/chonk_proof.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoC,MAAM,6BAA6B,CAAC;AAE7F;;;;;;;;;;;GAWG;AAGH,qBAAa,UAAU;IAYZ,MAAM,EAAE,EAAE,EAAE;IAXrB;;;;OAIG;IACI,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,YAIS,MAAM,EAAE,EAAE,EAAE,EACnB,eAAe,CAAC,EAAE,MAAM,EAOzB;IAEM,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,8BAE3C;IAEM,OAAO,YAEb;IAED,MAAM,CAAC,KAAK,eAEX;IAED,MAAM,CAAC,MAAM,eAYZ;IAED,MAAM,KAAK,MAAM,2GAEhB;IAGD,MAAM,4BAEL;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAqB3D;IAED;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAkBzD;IAED;;;;OAIG;IACI,QAAQ,4BAWd;CACF;AAED,qBAAa,0BAA0B;IAW5B,sBAAsB,EAAE,EAAE,EAAE;IAVrC;;;;OAIG;IACI,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,YAGS,sBAAsB,EAAE,EAAE,EAAE,EAMpC;IAEM,eAAe,SAMrB;IAEM,kBAAkB,eAOxB;IAEM,OAAO,YAEb;IAED,MAAM,CAAC,KAAK,+BAEX;IAED,MAAM,KAAK,MAAM,2IAEhB;IAGD,MAAM,4BAEL;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,0BAA0B,CAK3E;IAEM,QAAQ,4BAEd;IAGD,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,0BAA0B,CAGvE;CACF"}
1
+ {"version":3,"file":"chonk_proof.d.ts","sourceRoot":"","sources":["../../src/proofs/chonk_proof.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEvE;;;;;;;;;;;GAWG;AAGH,qBAAa,UAAU;IAYZ,MAAM,EAAE,EAAE,EAAE;IAXrB;;;;OAIG;IACI,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,YAIS,MAAM,EAAE,EAAE,EAAE,EACnB,eAAe,CAAC,EAAE,MAAM,EAOzB;IAEM,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,8BAE3C;IAEM,OAAO,YAEb;IAED,MAAM,CAAC,KAAK,eAEX;IAED,MAAM,CAAC,MAAM,eAYZ;IAED,MAAM,KAAK,MAAM,2GAEhB;IAGD,MAAM,4BAEL;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAqB3D;IAED;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAkBzD;IAED;;;;OAIG;IACI,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAkBzC;AAED,qBAAa,0BAA0B;IAW5B,sBAAsB,EAAE,EAAE,EAAE;IAVrC;;;;OAIG;IACI,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,YAGS,sBAAsB,EAAE,EAAE,EAAE,EAMpC;IAEM,eAAe,SAMrB;IAEM,kBAAkB,eAOxB;IAEM,OAAO,YAEb;IAED,MAAM,CAAC,KAAK,+BAEX;IAED,MAAM,KAAK,MAAM,2IAEhB;IAGD,MAAM,4BAEL;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,0BAA0B,CAK3E;IAEM,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAUxC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,0BAA0B,CAGvE;CACF"}
@@ -4,7 +4,7 @@ import { times } from '@aztec/foundation/collection';
4
4
  import { randomBytes } from '@aztec/foundation/crypto/random';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
7
- import { BufferReader, numToUInt32BE, serializeToBuffer } from '@aztec/foundation/serialize';
7
+ import { BufferReader, BufferSink } from '@aztec/foundation/serialize';
8
8
  /**
9
9
  * Serialization format detection for ChonkProof is value-based on the leading uint32:
10
10
  * - EMPTY: [0: uint32] → total = 4 bytes
@@ -120,24 +120,22 @@ export class ChonkProof {
120
120
  }
121
121
  return new ChonkProof(fields, compressed);
122
122
  }
123
- /**
124
- * Serialize the proof to a buffer.
125
- * If compressed bytes are available, uses the compressed format (~1.7x smaller).
126
- * Otherwise falls back to legacy field element format.
127
- */ toBuffer() {
123
+ toBuffer(sink) {
124
+ if (!sink) {
125
+ return BufferSink.serialize(this);
126
+ }
128
127
  if (this.compressedProof) {
129
128
  // Compressed format: [compressed_byte_count: uint32] [compressed_bytes]
130
- return Buffer.concat([
131
- numToUInt32BE(this.compressedProof.length),
132
- this.compressedProof
133
- ]);
129
+ sink.writeNumber(this.compressedProof.length);
130
+ sink.writeBytes(this.compressedProof);
131
+ return;
134
132
  }
135
- if (this.fields.length === 0) {
136
- // Empty format: a single zero length, no fields.
137
- return numToUInt32BE(0);
138
- }
139
- // Legacy format: [field_count=1632: uint32] [fields...]
140
- return serializeToBuffer(this.fields.length, this.fields);
133
+ // Legacy / empty format: [field_count: uint32] [fields...]. fields.length === 0 emits the empty
134
+ // sentinel (a lone zero uint32) that ChonkProof.fromBuffer detects; fields.length === CHONK_PROOF_LENGTH
135
+ // is the full legacy form. The writeFields fast path skips per-element sinkable dispatch on the 1632
136
+ // leaves and is a no-op when the array is empty.
137
+ sink.writeNumber(this.fields.length);
138
+ sink.writeFields(this.fields);
141
139
  }
142
140
  }
143
141
  export class ChonkProofWithPublicInputs {
@@ -190,8 +188,12 @@ export class ChonkProofWithPublicInputs {
190
188
  const proof = reader.readArray(proofLength, Fr);
191
189
  return new ChonkProofWithPublicInputs(proof);
192
190
  }
193
- toBuffer() {
194
- return serializeToBuffer(this.fieldsWithPublicInputs.length, this.fieldsWithPublicInputs);
191
+ toBuffer(sink) {
192
+ if (!sink) {
193
+ return BufferSink.serialize(this);
194
+ }
195
+ sink.writeNumber(this.fieldsWithPublicInputs.length);
196
+ sink.writeFields(this.fieldsWithPublicInputs);
195
197
  }
196
198
  // Called when constructing from bb proving results.
197
199
  static fromBufferArray(fields) {
@@ -0,0 +1,55 @@
1
+ /** Default minimum block-building duration (`min_block_duration`) in seconds. */
2
+ export declare const DEFAULT_MIN_BLOCK_DURATION = 2;
3
+ /** Default one-way P2P propagation time (`p2p_propagation_time`) for proposals and attestations in seconds. */
4
+ export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
5
+ /** Default local checkpoint proposal preparation time (`checkpoint_proposal_prepare_time`) in seconds. */
6
+ export declare const DEFAULT_CHECKPOINT_PROPOSAL_PREPARE_TIME = 1;
7
+ /** Default local tolerance for archiver orphan-prune checks when no checkpoint proposal was received. */
8
+ export declare const DEFAULT_ORPHAN_PRUNE_NO_PROPOSAL_TOLERANCE = 1;
9
+ /**
10
+ * Default proposer initialization time (`checkpoint_proposal_init_time`) in seconds: the budget reserved at
11
+ * the start of the build frame for sync, the proposer check, and checkpoint initialization before the first
12
+ * block sub-slot opens. The proposer rarely starts building exactly at `build_frame_start`; this offset
13
+ * shifts the sub-slot grid so the first sub-slot still has its full duration once the prologue completes.
14
+ */
15
+ export declare const DEFAULT_CHECKPOINT_PROPOSAL_INIT_TIME = 1;
16
+ /**
17
+ * Ethereum slot duration (seconds) below which a network is treated as a fast local/e2e profile with mocked
18
+ * p2p. Profiles at or above this keep the production operational budgets. Mainnet is 12s; fast anvil-style
19
+ * local profiles run at 4s.
20
+ */
21
+ export declare const FAST_PROFILE_ETHEREUM_SLOT_DURATION = 8;
22
+ /**
23
+ * Operational timing budgets for the fast local/e2e profile (mocked p2p), per the README's "Local e2e with
24
+ * mocked p2p" section. When `ethereum_slot_duration < FAST_PROFILE_ETHEREUM_SLOT_DURATION`, these cap the
25
+ * proposer's operational budgets so a fast network does not inherit the conservative production budgets,
26
+ * which would shrink the per-checkpoint build window and under-pack checkpoints. Explicitly configured
27
+ * budgets below these caps are kept as-is (the budgets are clamped down, never raised).
28
+ */
29
+ export declare const FAST_PROFILE_P2P_PROPAGATION_TIME = 0.5;
30
+ /** Fast-profile checkpoint proposal preparation budget (seconds). See {@link FAST_PROFILE_P2P_PROPAGATION_TIME}. */
31
+ export declare const FAST_PROFILE_CHECKPOINT_PROPOSAL_PREPARE_TIME = 0.5;
32
+ /** Fast-profile minimum block-building budget (seconds). See {@link FAST_PROFILE_P2P_PROPAGATION_TIME}. */
33
+ export declare const FAST_PROFILE_MIN_BLOCK_DURATION = 1;
34
+ /** Resolved operational timing budgets used to size the proposer build window. */
35
+ export type ResolvedTimingBudgets = {
36
+ minBlockDuration: number;
37
+ p2pPropagationTime: number;
38
+ checkpointProposalPrepareTime: number;
39
+ checkpointProposalInitTime: number;
40
+ };
41
+ /** Default consensus grace for received checkpoint proposals to materialize locally. */
42
+ export declare function getDefaultCheckpointProposalSyncGrace(blockDuration: number | undefined): number;
43
+ /**
44
+ * Resolves the operational timing budgets, applying the fast local/e2e profile when
45
+ * `ethereumSlotDuration < FAST_PROFILE_ETHEREUM_SLOT_DURATION`.
46
+ *
47
+ * Production profiles (`ethereumSlotDuration >= FAST_PROFILE_ETHEREUM_SLOT_DURATION`) use the configured
48
+ * budgets verbatim. Fast profiles clamp `p2pPropagationTime`, `checkpointProposalPrepareTime`, and
49
+ * `minBlockDuration` down to the fast-profile caps so a fast network (mocked p2p) gets a build window sized
50
+ * for local timing rather than the conservative production budgets. The clamp only lowers budgets, so an
51
+ * operator that explicitly configured a smaller value keeps it. `checkpointProposalInitTime` is unchanged by
52
+ * the profile: it is a proposer prologue budget, not a propagation/preparation budget.
53
+ */
54
+ export declare function resolveTimingBudgets(ethereumSlotDuration: number, opts: ResolvedTimingBudgets): ResolvedTimingBudgets;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RpbWV0YWJsZS9idWRnZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlGQUFpRjtBQUNqRixlQUFPLE1BQU0sMEJBQTBCLElBQUksQ0FBQztBQUU1QywrR0FBK0c7QUFDL0csZUFBTyxNQUFNLDRCQUE0QixJQUFJLENBQUM7QUFFOUMsMEdBQTBHO0FBQzFHLGVBQU8sTUFBTSx3Q0FBd0MsSUFBSSxDQUFDO0FBRTFELHlHQUF5RztBQUN6RyxlQUFPLE1BQU0sMENBQTBDLElBQUksQ0FBQztBQUU1RDs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxxQ0FBcUMsSUFBSSxDQUFDO0FBRXZEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sbUNBQW1DLElBQUksQ0FBQztBQUVyRDs7Ozs7O0dBTUc7QUFDSCxlQUFPLE1BQU0saUNBQWlDLE1BQU0sQ0FBQztBQUVyRCxvSEFBb0g7QUFDcEgsZUFBTyxNQUFNLDZDQUE2QyxNQUFNLENBQUM7QUFFakUsMkdBQTJHO0FBQzNHLGVBQU8sTUFBTSwrQkFBK0IsSUFBSSxDQUFDO0FBRWpELGtGQUFrRjtBQUNsRixNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUMzQiw2QkFBNkIsRUFBRSxNQUFNLENBQUM7SUFDdEMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0NBQ3BDLENBQUM7QUFFRix3RkFBd0Y7QUFDeEYsd0JBQWdCLHFDQUFxQyxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FFL0Y7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUscUJBQXFCLEdBQUcscUJBQXFCLENBaUJySCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/timetable/budgets.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,+GAA+G;AAC/G,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,0GAA0G;AAC1G,eAAO,MAAM,wCAAwC,IAAI,CAAC;AAE1D,yGAAyG;AACzG,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC,IAAI,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,oHAAoH;AACpH,eAAO,MAAM,6CAA6C,MAAM,CAAC;AAEjE,2GAA2G;AAC3G,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6BAA6B,EAAE,MAAM,CAAC;IACtC,0BAA0B,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,qCAAqC,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,CAiBrH"}
@@ -0,0 +1,55 @@
1
+ /** Default minimum block-building duration (`min_block_duration`) in seconds. */ export const DEFAULT_MIN_BLOCK_DURATION = 2;
2
+ /** Default one-way P2P propagation time (`p2p_propagation_time`) for proposals and attestations in seconds. */ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
3
+ /** Default local checkpoint proposal preparation time (`checkpoint_proposal_prepare_time`) in seconds. */ export const DEFAULT_CHECKPOINT_PROPOSAL_PREPARE_TIME = 1;
4
+ /** Default local tolerance for archiver orphan-prune checks when no checkpoint proposal was received. */ export const DEFAULT_ORPHAN_PRUNE_NO_PROPOSAL_TOLERANCE = 1;
5
+ /**
6
+ * Default proposer initialization time (`checkpoint_proposal_init_time`) in seconds: the budget reserved at
7
+ * the start of the build frame for sync, the proposer check, and checkpoint initialization before the first
8
+ * block sub-slot opens. The proposer rarely starts building exactly at `build_frame_start`; this offset
9
+ * shifts the sub-slot grid so the first sub-slot still has its full duration once the prologue completes.
10
+ */ export const DEFAULT_CHECKPOINT_PROPOSAL_INIT_TIME = 1;
11
+ /**
12
+ * Ethereum slot duration (seconds) below which a network is treated as a fast local/e2e profile with mocked
13
+ * p2p. Profiles at or above this keep the production operational budgets. Mainnet is 12s; fast anvil-style
14
+ * local profiles run at 4s.
15
+ */ export const FAST_PROFILE_ETHEREUM_SLOT_DURATION = 8;
16
+ /**
17
+ * Operational timing budgets for the fast local/e2e profile (mocked p2p), per the README's "Local e2e with
18
+ * mocked p2p" section. When `ethereum_slot_duration < FAST_PROFILE_ETHEREUM_SLOT_DURATION`, these cap the
19
+ * proposer's operational budgets so a fast network does not inherit the conservative production budgets,
20
+ * which would shrink the per-checkpoint build window and under-pack checkpoints. Explicitly configured
21
+ * budgets below these caps are kept as-is (the budgets are clamped down, never raised).
22
+ */ export const FAST_PROFILE_P2P_PROPAGATION_TIME = 0.5;
23
+ /** Fast-profile checkpoint proposal preparation budget (seconds). See {@link FAST_PROFILE_P2P_PROPAGATION_TIME}. */ export const FAST_PROFILE_CHECKPOINT_PROPOSAL_PREPARE_TIME = 0.5;
24
+ /** Fast-profile minimum block-building budget (seconds). See {@link FAST_PROFILE_P2P_PROPAGATION_TIME}. */ export const FAST_PROFILE_MIN_BLOCK_DURATION = 1;
25
+ /** Default consensus grace for received checkpoint proposals to materialize locally. */ export function getDefaultCheckpointProposalSyncGrace(blockDuration) {
26
+ return 2 * (blockDuration ?? DEFAULT_MIN_BLOCK_DURATION);
27
+ }
28
+ /**
29
+ * Resolves the operational timing budgets, applying the fast local/e2e profile when
30
+ * `ethereumSlotDuration < FAST_PROFILE_ETHEREUM_SLOT_DURATION`.
31
+ *
32
+ * Production profiles (`ethereumSlotDuration >= FAST_PROFILE_ETHEREUM_SLOT_DURATION`) use the configured
33
+ * budgets verbatim. Fast profiles clamp `p2pPropagationTime`, `checkpointProposalPrepareTime`, and
34
+ * `minBlockDuration` down to the fast-profile caps so a fast network (mocked p2p) gets a build window sized
35
+ * for local timing rather than the conservative production budgets. The clamp only lowers budgets, so an
36
+ * operator that explicitly configured a smaller value keeps it. `checkpointProposalInitTime` is unchanged by
37
+ * the profile: it is a proposer prologue budget, not a propagation/preparation budget.
38
+ */ export function resolveTimingBudgets(ethereumSlotDuration, opts) {
39
+ const { minBlockDuration, p2pPropagationTime, checkpointProposalPrepareTime, checkpointProposalInitTime } = opts;
40
+ const isFastProfile = ethereumSlotDuration < FAST_PROFILE_ETHEREUM_SLOT_DURATION;
41
+ if (!isFastProfile) {
42
+ return {
43
+ minBlockDuration,
44
+ p2pPropagationTime,
45
+ checkpointProposalPrepareTime,
46
+ checkpointProposalInitTime
47
+ };
48
+ }
49
+ return {
50
+ minBlockDuration: Math.min(minBlockDuration, FAST_PROFILE_MIN_BLOCK_DURATION),
51
+ p2pPropagationTime: Math.min(p2pPropagationTime, FAST_PROFILE_P2P_PROPAGATION_TIME),
52
+ checkpointProposalPrepareTime: Math.min(checkpointProposalPrepareTime, FAST_PROFILE_CHECKPOINT_PROPOSAL_PREPARE_TIME),
53
+ checkpointProposalInitTime
54
+ };
55
+ }
@@ -0,0 +1,72 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { type L1RollupConstants } from '../epoch-helpers/index.js';
3
+ /** Slot-timing protocol constants the timetables derive wall-clock times from. */
4
+ export type SlotTimingConstants = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>;
5
+ /**
6
+ * Consensus acceptance bounds for the pipelined timetable.
7
+ *
8
+ * Returns the deadlines and matching receive-window lower bounds that validators and p2p use to decide
9
+ * whether a proposal or attestation is acceptable for a given target slot. All getters take a target slot
10
+ * and return an absolute wall-clock timestamp in seconds.
11
+ *
12
+ * Inputs are protocol slot-timing constants only (`genesis`, `aztec_slot_duration`,
13
+ * `ethereum_slot_duration`, `block_duration`, `checkpoint_proposal_sync_grace`); no operational budgets, so every
14
+ * node agrees on these bounds. See `stdlib/src/timetable/README.md` for the timing model.
15
+ */
16
+ export declare class ConsensusTimetable {
17
+ /** Aztec slot duration (`S`) in seconds. */
18
+ readonly aztecSlotDuration: number;
19
+ /** Ethereum slot duration (`E`) in seconds. */
20
+ readonly ethereumSlotDuration: number;
21
+ /** Block sub-slot duration (`D`) in seconds, or undefined in single-block mode. */
22
+ readonly blockDuration: number | undefined;
23
+ /** L1 genesis timestamp in seconds (`genesis`), the anchor all slot timings derive from. */
24
+ readonly genesisTime: bigint;
25
+ /** Consensus grace for received checkpoint proposals to materialize into local proposed state. */
26
+ readonly checkpointProposalSyncGrace: number;
27
+ constructor(opts: {
28
+ l1Constants: SlotTimingConstants;
29
+ blockDuration: number | undefined;
30
+ checkpointProposalSyncGrace?: number;
31
+ });
32
+ /**
33
+ * Build-frame start for the target slot: `target_slot_start - S - E`. Anchors all sub-slot timings.
34
+ * Computed directly (not via a `slot - 1` hop) so it is well-defined for slot 0, whose build frame
35
+ * predates genesis; p2p validators evaluate acceptance windows for arbitrary peer-supplied slots.
36
+ */
37
+ getBuildFrameStart(slot: SlotNumber): number;
38
+ /** Start of the target slot: `genesis + slot * S`. */
39
+ getTargetSlotStart(slot: SlotNumber): number;
40
+ /**
41
+ * Earliest acceptable arrival for a checkpoint proposal: `target_slot_start - S - E` (the build frame
42
+ * opening). Nothing legitimate for this slot exists before its build frame opens.
43
+ */
44
+ getCheckpointProposalReceiveStart(slot: SlotNumber): number;
45
+ /**
46
+ * Hard consensus receive deadline for a checkpoint proposal: `target_slot_start - E - D`. Validators
47
+ * reject proposals arriving after this, and the next proposer does not build on them. In single-block
48
+ * mode (`blockDuration` undefined) the `D` term drops to zero, giving `target_slot_start - E` (the
49
+ * next proposer's build-frame boundary), so this remains usable rather than throwing.
50
+ */
51
+ getCheckpointProposalReceiveDeadline(slot: SlotNumber): number;
52
+ /**
53
+ * Wall-clock deadline by which a received checkpoint proposal should have materialized into local proposed
54
+ * state. This is `next_proposer_build_frame_start + checkpointProposalSyncGrace`, rounded up to the next
55
+ * integer second because L1 timestamps and archiver comparisons are second-granularity.
56
+ */
57
+ getCheckpointProposalSyncedDeadline(slot: SlotNumber): number;
58
+ /**
59
+ * Earliest acceptable arrival for an attestation: `target_slot_start - S - E` (the build frame
60
+ * opening). Deliberately liberal; attestations are attributed by content, not timing.
61
+ */
62
+ getAttestationReceiveStart(slot: SlotNumber): number;
63
+ /**
64
+ * Single hard consensus deadline: `target_slot_start + S - 2E`. The latest the checkpoint can still
65
+ * land on L1 in the target slot, and the cutoff by which every block and the checkpoint must be
66
+ * re-executed, validated, and signed. Consensus-driven (used for inactivity/slashing decisions).
67
+ */
68
+ getAttestationDeadline(slot: SlotNumber): number;
69
+ /** Slot-timing protocol constants this timetable derives wall-clock times from. */
70
+ getL1Constants(): SlotTimingConstants;
71
+ }
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3RpbWV0YWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RpbWV0YWJsZS9jb25zZW5zdXNfdGltZXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUF1QixNQUFNLDJCQUEyQixDQUFDO0FBR3hGLGtGQUFrRjtBQUNsRixNQUFNLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztBQUVySDs7Ozs7Ozs7OztHQVVHO0FBQ0gscUJBQWEsa0JBQWtCO0lBQzdCLDRDQUE0QztJQUM1QyxTQUFnQixpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFFMUMsK0NBQStDO0lBQy9DLFNBQWdCLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUU3QyxtRkFBbUY7SUFDbkYsU0FBZ0IsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFFbEQsNEZBQTRGO0lBQzVGLFNBQWdCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFFcEMsa0dBQWtHO0lBQ2xHLFNBQWdCLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUVwRCxZQUFZLElBQUksRUFBRTtRQUNoQixXQUFXLEVBQUUsbUJBQW1CLENBQUM7UUFDakMsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDbEMsMkJBQTJCLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDdEMsRUFzQkE7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxNQUFNLENBRWxEO0lBRUQsc0RBQXNEO0lBQy9DLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUVsRDtJQUVEOzs7T0FHRztJQUNJLGlDQUFpQyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUVqRTtJQUVEOzs7OztPQUtHO0lBQ0ksb0NBQW9DLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxNQUFNLENBRXBFO0lBRUQ7Ozs7T0FJRztJQUNJLG1DQUFtQyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUluRTtJQUVEOzs7T0FHRztJQUNJLDBCQUEwQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUUxRDtJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FFdEQ7SUFFRCxtRkFBbUY7SUFDNUUsY0FBYyxJQUFJLG1CQUFtQixDQU0zQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus_timetable.d.ts","sourceRoot":"","sources":["../../src/timetable/consensus_timetable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,2BAA2B,CAAC;AAGxF,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,sBAAsB,CAAC,CAAC;AAErH;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAC7B,4CAA4C;IAC5C,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,+CAA+C;IAC/C,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IAE7C,mFAAmF;IACnF,SAAgB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElD,4FAA4F;IAC5F,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,kGAAkG;IAClG,SAAgB,2BAA2B,EAAE,MAAM,CAAC;IAEpD,YAAY,IAAI,EAAE;QAChB,WAAW,EAAE,mBAAmB,CAAC;QACjC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,2BAA2B,CAAC,EAAE,MAAM,CAAC;KACtC,EAsBA;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAElD;IAED,sDAAsD;IAC/C,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAElD;IAED;;;OAGG;IACI,iCAAiC,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEjE;IAED;;;;;OAKG;IACI,oCAAoC,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpE;IAED;;;;OAIG;IACI,mCAAmC,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAInE;IAED;;;OAGG;IACI,0BAA0B,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE1D;IAED;;;;OAIG;IACI,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEtD;IAED,mFAAmF;IAC5E,cAAc,IAAI,mBAAmB,CAM3C;CACF"}
@@ -0,0 +1,91 @@
1
+ import { getTimestampForSlot } from '../epoch-helpers/index.js';
2
+ import { getDefaultCheckpointProposalSyncGrace } from './budgets.js';
3
+ /**
4
+ * Consensus acceptance bounds for the pipelined timetable.
5
+ *
6
+ * Returns the deadlines and matching receive-window lower bounds that validators and p2p use to decide
7
+ * whether a proposal or attestation is acceptable for a given target slot. All getters take a target slot
8
+ * and return an absolute wall-clock timestamp in seconds.
9
+ *
10
+ * Inputs are protocol slot-timing constants only (`genesis`, `aztec_slot_duration`,
11
+ * `ethereum_slot_duration`, `block_duration`, `checkpoint_proposal_sync_grace`); no operational budgets, so every
12
+ * node agrees on these bounds. See `stdlib/src/timetable/README.md` for the timing model.
13
+ */ export class ConsensusTimetable {
14
+ /** Aztec slot duration (`S`) in seconds. */ aztecSlotDuration;
15
+ /** Ethereum slot duration (`E`) in seconds. */ ethereumSlotDuration;
16
+ /** Block sub-slot duration (`D`) in seconds, or undefined in single-block mode. */ blockDuration;
17
+ /** L1 genesis timestamp in seconds (`genesis`), the anchor all slot timings derive from. */ genesisTime;
18
+ /** Consensus grace for received checkpoint proposals to materialize into local proposed state. */ checkpointProposalSyncGrace;
19
+ constructor(opts){
20
+ const { l1Constants, blockDuration } = opts;
21
+ const checkpointProposalSyncGrace = opts.checkpointProposalSyncGrace ?? getDefaultCheckpointProposalSyncGrace(blockDuration);
22
+ if (l1Constants.slotDuration <= 0) {
23
+ throw new Error(`aztecSlotDuration must be positive (got ${l1Constants.slotDuration})`);
24
+ }
25
+ if (l1Constants.ethereumSlotDuration <= 0) {
26
+ throw new Error(`ethereumSlotDuration must be positive (got ${l1Constants.ethereumSlotDuration})`);
27
+ }
28
+ if (blockDuration !== undefined && blockDuration <= 0) {
29
+ throw new Error(`blockDuration must be positive when provided (got ${blockDuration})`);
30
+ }
31
+ if (checkpointProposalSyncGrace < 0) {
32
+ throw new Error(`checkpointProposalSyncGrace must be non-negative (got ${checkpointProposalSyncGrace})`);
33
+ }
34
+ this.aztecSlotDuration = l1Constants.slotDuration;
35
+ this.ethereumSlotDuration = l1Constants.ethereumSlotDuration;
36
+ this.blockDuration = blockDuration;
37
+ this.genesisTime = l1Constants.l1GenesisTime;
38
+ this.checkpointProposalSyncGrace = checkpointProposalSyncGrace;
39
+ }
40
+ /**
41
+ * Build-frame start for the target slot: `target_slot_start - S - E`. Anchors all sub-slot timings.
42
+ * Computed directly (not via a `slot - 1` hop) so it is well-defined for slot 0, whose build frame
43
+ * predates genesis; p2p validators evaluate acceptance windows for arbitrary peer-supplied slots.
44
+ */ getBuildFrameStart(slot) {
45
+ return this.getTargetSlotStart(slot) - this.aztecSlotDuration - this.ethereumSlotDuration;
46
+ }
47
+ /** Start of the target slot: `genesis + slot * S`. */ getTargetSlotStart(slot) {
48
+ return Number(getTimestampForSlot(slot, this.getL1Constants()));
49
+ }
50
+ /**
51
+ * Earliest acceptable arrival for a checkpoint proposal: `target_slot_start - S - E` (the build frame
52
+ * opening). Nothing legitimate for this slot exists before its build frame opens.
53
+ */ getCheckpointProposalReceiveStart(slot) {
54
+ return this.getBuildFrameStart(slot);
55
+ }
56
+ /**
57
+ * Hard consensus receive deadline for a checkpoint proposal: `target_slot_start - E - D`. Validators
58
+ * reject proposals arriving after this, and the next proposer does not build on them. In single-block
59
+ * mode (`blockDuration` undefined) the `D` term drops to zero, giving `target_slot_start - E` (the
60
+ * next proposer's build-frame boundary), so this remains usable rather than throwing.
61
+ */ getCheckpointProposalReceiveDeadline(slot) {
62
+ return this.getTargetSlotStart(slot) - this.ethereumSlotDuration - (this.blockDuration ?? 0);
63
+ }
64
+ /**
65
+ * Wall-clock deadline by which a received checkpoint proposal should have materialized into local proposed
66
+ * state. This is `next_proposer_build_frame_start + checkpointProposalSyncGrace`, rounded up to the next
67
+ * integer second because L1 timestamps and archiver comparisons are second-granularity.
68
+ */ getCheckpointProposalSyncedDeadline(slot) {
69
+ return Math.ceil(this.getCheckpointProposalReceiveDeadline(slot) + (this.blockDuration ?? 0) + this.checkpointProposalSyncGrace);
70
+ }
71
+ /**
72
+ * Earliest acceptable arrival for an attestation: `target_slot_start - S - E` (the build frame
73
+ * opening). Deliberately liberal; attestations are attributed by content, not timing.
74
+ */ getAttestationReceiveStart(slot) {
75
+ return this.getBuildFrameStart(slot);
76
+ }
77
+ /**
78
+ * Single hard consensus deadline: `target_slot_start + S - 2E`. The latest the checkpoint can still
79
+ * land on L1 in the target slot, and the cutoff by which every block and the checkpoint must be
80
+ * re-executed, validated, and signed. Consensus-driven (used for inactivity/slashing decisions).
81
+ */ getAttestationDeadline(slot) {
82
+ return this.getTargetSlotStart(slot) + this.aztecSlotDuration - 2 * this.ethereumSlotDuration;
83
+ }
84
+ /** Slot-timing protocol constants this timetable derives wall-clock times from. */ getL1Constants() {
85
+ return {
86
+ l1GenesisTime: this.genesisTime,
87
+ slotDuration: this.aztecSlotDuration,
88
+ ethereumSlotDuration: this.ethereumSlotDuration
89
+ };
90
+ }
91
+ }
@@ -1,87 +1,4 @@
1
- /**
2
- * Timetable constants used for sequencer timing calculations.
3
- * These define the time budgets for various phases of block production.
4
- *
5
- * The sequencer slot is divided into phases:
6
- * 1. Checkpoint initialization (sync + proposer check)
7
- * 2. Block building (execution)
8
- * 3. Checkpoint assembly
9
- * 4. P2P propagation for proposal and attestations (round-trip)
10
- * 5. L1 publishing
11
- */
12
- /** Time budget for checkpoint initialization (sync + proposer check) in seconds */
13
- export declare const CHECKPOINT_INITIALIZATION_TIME = 1;
14
- /** Time budget for assembling a checkpoint after building the last block in seconds */
15
- export declare const CHECKPOINT_ASSEMBLE_TIME = 1;
16
- /** Default one-way P2P propagation time for proposals and attestations in seconds */
17
- export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
18
- /** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
19
- export declare const DEFAULT_L1_PUBLISHING_TIME = 12;
20
- /** Minimum execution time for building a block in seconds */
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;
71
- /**
72
- * Calculates the maximum number of blocks that can be built in a slot.
73
- * Used by both the sequencer timetable and p2p gossipsub scoring.
74
- *
75
- * @param aztecSlotDurationSec - Aztec slot duration in seconds
76
- * @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
77
- * @param opts - Optional overrides for timing constants
78
- * @returns Maximum number of blocks per slot
79
- */
80
- export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number, blockDurationSec: number | undefined, opts?: {
81
- checkpointInitializationTime?: number;
82
- checkpointAssembleTime?: number;
83
- p2pPropagationTime?: number;
84
- l1PublishingTime?: number;
85
- pipelining?: boolean;
86
- }): number;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEMsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDbkMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDeEMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUM5QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDbEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQzVDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDbEQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDcEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUM1QyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDO0lBQ3BELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLENBQUM7SUFDL0MsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUU5Qyx5QkFBeUIsSUFBSSxNQUFNLENBQUM7Q0FDckM7QUFFRCxNQUFNLFdBQVcseUJBQTBCLFNBQVEsZ0JBQWdCO0lBQ2pFLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDOUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUNsRDtBQTZKRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixHQUFHLGdCQUFnQixDQVMxRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9DQUFvQyxDQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxHQUMvQyx5QkFBeUIsQ0FPM0I7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQix5QkFBeUIsQ0FDdkMsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNwQyxJQUFJLEdBQUU7SUFDSiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FDTCxNQUFNLENBVVIifQ==
1
+ export * from './budgets.js';
2
+ export * from './consensus_timetable.js';
3
+ export * from './proposer_timetable.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDIn0=
@@ -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,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}