@aztec/stdlib 0.0.1-commit.6c91f13 → 0.0.1-commit.7d4e6cd

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 (240) hide show
  1. package/dest/abi/contract_artifact.d.ts +2 -2
  2. package/dest/abi/contract_artifact.d.ts.map +1 -1
  3. package/dest/abi/contract_artifact.js +1 -1
  4. package/dest/abi/selector.js +3 -1
  5. package/dest/avm/avm_accumulated_data.js +5 -2
  6. package/dest/avm/avm_circuit_public_inputs.js +3 -1
  7. package/dest/avm/public_data_update_request.js +3 -1
  8. package/dest/avm/public_inner_call_request.js +3 -1
  9. package/dest/avm/revert_code.js +3 -1
  10. package/dest/aztec-address/index.js +4 -2
  11. package/dest/block/attestation_info.d.ts +5 -5
  12. package/dest/block/attestation_info.d.ts.map +1 -1
  13. package/dest/block/attestation_info.js +4 -4
  14. package/dest/block/body.js +3 -1
  15. package/dest/block/l2_block.d.ts +6 -3
  16. package/dest/block/l2_block.d.ts.map +1 -1
  17. package/dest/block/l2_block.js +6 -4
  18. package/dest/block/l2_block_code_to_purge.d.ts +2 -3
  19. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  20. package/dest/block/l2_block_code_to_purge.js +2 -8
  21. package/dest/block/l2_block_header.d.ts +8 -12
  22. package/dest/block/l2_block_header.d.ts.map +1 -1
  23. package/dest/block/l2_block_header.js +25 -18
  24. package/dest/block/l2_block_new.d.ts +1 -2
  25. package/dest/block/l2_block_new.d.ts.map +1 -1
  26. package/dest/block/l2_block_new.js +4 -1
  27. package/dest/block/l2_block_source.d.ts +245 -41
  28. package/dest/block/l2_block_source.d.ts.map +1 -1
  29. package/dest/block/l2_block_source.js +23 -5
  30. package/dest/block/l2_block_stream/index.d.ts +2 -1
  31. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  32. package/dest/block/l2_block_stream/index.js +1 -0
  33. package/dest/block/l2_block_stream/interfaces.d.ts +12 -5
  34. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  35. package/dest/block/l2_block_stream/l2_block_stream.d.ts +4 -2
  36. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  37. package/dest/block/l2_block_stream/l2_block_stream.js +102 -30
  38. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  39. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  40. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  41. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  42. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  43. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  44. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  45. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  46. package/dest/block/test/l2_tips_store_test_suite.js +483 -38
  47. package/dest/block/validate_block_result.d.ts +24 -24
  48. package/dest/block/validate_block_result.d.ts.map +1 -1
  49. package/dest/block/validate_block_result.js +13 -13
  50. package/dest/checkpoint/checkpoint.d.ts +1 -1
  51. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  52. package/dest/checkpoint/checkpoint.js +1 -0
  53. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  54. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  55. package/dest/checkpoint/checkpoint_info.js +34 -1
  56. package/dest/checkpoint/index.d.ts +2 -1
  57. package/dest/checkpoint/index.d.ts.map +1 -1
  58. package/dest/checkpoint/index.js +1 -0
  59. package/dest/database-version/version_manager.js +3 -1
  60. package/dest/gas/gas.js +3 -1
  61. package/dest/gas/gas_fees.js +3 -1
  62. package/dest/interfaces/api_limit.d.ts +2 -1
  63. package/dest/interfaces/api_limit.d.ts.map +1 -1
  64. package/dest/interfaces/api_limit.js +1 -0
  65. package/dest/interfaces/archiver.d.ts +6 -6
  66. package/dest/interfaces/archiver.d.ts.map +1 -1
  67. package/dest/interfaces/archiver.js +6 -4
  68. package/dest/interfaces/aztec-node-admin.d.ts +12 -6
  69. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  70. package/dest/interfaces/aztec-node-admin.js +2 -2
  71. package/dest/interfaces/aztec-node.d.ts +11 -10
  72. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  73. package/dest/interfaces/aztec-node.js +10 -5
  74. package/dest/interfaces/configs.d.ts +6 -1
  75. package/dest/interfaces/configs.d.ts.map +1 -1
  76. package/dest/interfaces/configs.js +2 -1
  77. package/dest/interfaces/p2p.d.ts +7 -9
  78. package/dest/interfaces/p2p.d.ts.map +1 -1
  79. package/dest/interfaces/p2p.js +3 -4
  80. package/dest/interfaces/proving-job.d.ts +170 -170
  81. package/dest/interfaces/proving-job.d.ts.map +1 -1
  82. package/dest/interfaces/proving-job.js +1 -7
  83. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  84. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  85. package/dest/interfaces/validator.d.ts +41 -7
  86. package/dest/interfaces/validator.d.ts.map +1 -1
  87. package/dest/interfaces/validator.js +3 -1
  88. package/dest/kernel/claimed_length_array.js +3 -1
  89. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  90. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  91. package/dest/kernel/hints/build_note_hash_read_request_hints.js +5 -6
  92. package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
  93. package/dest/kernel/log_hash.js +3 -1
  94. package/dest/kernel/private_log_data.js +5 -2
  95. package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
  96. package/dest/kernel/private_to_public_accumulated_data.js +3 -1
  97. package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
  98. package/dest/kernel/private_validation_requests.js +3 -1
  99. package/dest/kernel/public_call_request.js +5 -2
  100. package/dest/logs/contract_class_log.js +3 -1
  101. package/dest/logs/private_log.js +3 -1
  102. package/dest/logs/public_log.js +3 -1
  103. package/dest/messaging/in_hash.d.ts +4 -2
  104. package/dest/messaging/in_hash.d.ts.map +1 -1
  105. package/dest/messaging/in_hash.js +3 -1
  106. package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
  107. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  108. package/dest/messaging/l2_to_l1_membership.js +158 -42
  109. package/dest/messaging/out_hash.d.ts +2 -1
  110. package/dest/messaging/out_hash.d.ts.map +1 -1
  111. package/dest/messaging/out_hash.js +13 -4
  112. package/dest/p2p/attestation_utils.d.ts +3 -3
  113. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  114. package/dest/p2p/attestation_utils.js +1 -1
  115. package/dest/p2p/block_proposal.d.ts +85 -21
  116. package/dest/p2p/block_proposal.d.ts.map +1 -1
  117. package/dest/p2p/block_proposal.js +120 -37
  118. package/dest/p2p/checkpoint_attestation.d.ts +77 -0
  119. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  120. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  121. package/dest/p2p/checkpoint_proposal.d.ts +154 -0
  122. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  123. package/dest/p2p/checkpoint_proposal.js +217 -0
  124. package/dest/p2p/consensus_payload.d.ts +6 -7
  125. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  126. package/dest/p2p/consensus_payload.js +3 -2
  127. package/dest/p2p/gossipable.d.ts +4 -3
  128. package/dest/p2p/gossipable.d.ts.map +1 -1
  129. package/dest/p2p/gossipable.js +16 -5
  130. package/dest/p2p/index.d.ts +4 -2
  131. package/dest/p2p/index.d.ts.map +1 -1
  132. package/dest/p2p/index.js +3 -1
  133. package/dest/p2p/signature_utils.d.ts +5 -3
  134. package/dest/p2p/signature_utils.d.ts.map +1 -1
  135. package/dest/p2p/signature_utils.js +3 -1
  136. package/dest/p2p/signed_txs.d.ts +40 -0
  137. package/dest/p2p/signed_txs.d.ts.map +1 -0
  138. package/dest/p2p/signed_txs.js +70 -0
  139. package/dest/p2p/topic_type.d.ts +3 -2
  140. package/dest/p2p/topic_type.d.ts.map +1 -1
  141. package/dest/p2p/topic_type.js +8 -2
  142. package/dest/rollup/block_rollup_public_inputs.d.ts +4 -9
  143. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  144. package/dest/rollup/block_rollup_public_inputs.js +6 -10
  145. package/dest/rollup/checkpoint_constant_data.js +3 -1
  146. package/dest/rollup/checkpoint_header.d.ts +15 -12
  147. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  148. package/dest/rollup/checkpoint_header.js +33 -19
  149. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -1
  150. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  151. package/dest/rollup/checkpoint_rollup_public_inputs.js +6 -2
  152. package/dest/rollup/root_rollup_public_inputs.d.ts +8 -3
  153. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  154. package/dest/rollup/root_rollup_public_inputs.js +6 -3
  155. package/dest/tests/factories.d.ts +15 -7
  156. package/dest/tests/factories.d.ts.map +1 -1
  157. package/dest/tests/factories.js +57 -13
  158. package/dest/tests/mocks.d.ts +59 -10
  159. package/dest/tests/mocks.d.ts.map +1 -1
  160. package/dest/tests/mocks.js +89 -41
  161. package/dest/trees/append_only_tree_snapshot.js +3 -1
  162. package/dest/tx/block_header.js +3 -1
  163. package/dest/tx/call_context.js +3 -1
  164. package/dest/tx/global_variable_builder.d.ts +2 -2
  165. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  166. package/dest/tx/global_variables.js +3 -1
  167. package/dest/tx/index.d.ts +1 -2
  168. package/dest/tx/index.d.ts.map +1 -1
  169. package/dest/tx/index.js +0 -1
  170. package/dest/tx/private_execution_result.d.ts +1 -5
  171. package/dest/tx/private_execution_result.d.ts.map +1 -1
  172. package/dest/tx/private_execution_result.js +3 -20
  173. package/dest/tx/public_call_request_with_calldata.js +3 -1
  174. package/dest/tx/state_reference.js +3 -1
  175. package/dest/tx/tree_snapshots.js +3 -1
  176. package/dest/tx/tx.d.ts +1 -1
  177. package/dest/tx/tx.d.ts.map +1 -1
  178. package/dest/tx/tx.js +3 -1
  179. package/dest/tx/tx_effect.js +3 -1
  180. package/dest/tx/tx_execution_request.d.ts +1 -1
  181. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  182. package/dest/tx/tx_execution_request.js +6 -2
  183. package/package.json +8 -8
  184. package/src/abi/contract_artifact.ts +10 -10
  185. package/src/block/attestation_info.ts +9 -6
  186. package/src/block/l2_block.ts +6 -5
  187. package/src/block/l2_block_code_to_purge.ts +3 -11
  188. package/src/block/l2_block_header.ts +26 -17
  189. package/src/block/l2_block_new.ts +5 -1
  190. package/src/block/l2_block_source.ts +66 -16
  191. package/src/block/l2_block_stream/index.ts +1 -0
  192. package/src/block/l2_block_stream/interfaces.ts +12 -4
  193. package/src/block/l2_block_stream/l2_block_stream.ts +121 -38
  194. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  195. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  196. package/src/block/test/l2_tips_store_test_suite.ts +485 -36
  197. package/src/block/validate_block_result.ts +35 -31
  198. package/src/checkpoint/checkpoint.ts +1 -0
  199. package/src/checkpoint/checkpoint_info.ts +45 -2
  200. package/src/checkpoint/index.ts +1 -0
  201. package/src/interfaces/api_limit.ts +1 -0
  202. package/src/interfaces/archiver.ts +14 -6
  203. package/src/interfaces/aztec-node-admin.ts +5 -2
  204. package/src/interfaces/aztec-node.ts +43 -13
  205. package/src/interfaces/configs.ts +5 -0
  206. package/src/interfaces/p2p.ts +8 -12
  207. package/src/interfaces/proving-job.ts +2 -11
  208. package/src/interfaces/server_circuit_prover.ts +3 -2
  209. package/src/interfaces/validator.ts +57 -7
  210. package/src/kernel/hints/build_note_hash_read_request_hints.ts +5 -8
  211. package/src/messaging/in_hash.ts +3 -1
  212. package/src/messaging/l2_to_l1_membership.ts +176 -52
  213. package/src/messaging/out_hash.ts +17 -7
  214. package/src/p2p/attestation_utils.ts +3 -3
  215. package/src/p2p/block_proposal.ts +185 -41
  216. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
  217. package/src/p2p/checkpoint_proposal.ts +337 -0
  218. package/src/p2p/consensus_payload.ts +5 -2
  219. package/src/p2p/gossipable.ts +14 -4
  220. package/src/p2p/index.ts +3 -1
  221. package/src/p2p/signature_utils.ts +3 -1
  222. package/src/p2p/signed_txs.ts +83 -0
  223. package/src/p2p/topic_type.ts +3 -2
  224. package/src/rollup/block_rollup_public_inputs.ts +3 -9
  225. package/src/rollup/checkpoint_header.ts +43 -20
  226. package/src/rollup/checkpoint_rollup_public_inputs.ts +6 -0
  227. package/src/rollup/root_rollup_public_inputs.ts +6 -0
  228. package/src/tests/factories.ts +53 -17
  229. package/src/tests/mocks.ts +166 -64
  230. package/src/tx/global_variable_builder.ts +1 -1
  231. package/src/tx/index.ts +0 -1
  232. package/src/tx/private_execution_result.ts +0 -15
  233. package/src/tx/tx.ts +2 -0
  234. package/src/tx/tx_execution_request.ts +2 -0
  235. package/dest/p2p/block_attestation.d.ts +0 -80
  236. package/dest/p2p/block_attestation.d.ts.map +0 -1
  237. package/dest/tx/content_commitment.d.ts +0 -49
  238. package/dest/tx/content_commitment.d.ts.map +0 -1
  239. package/dest/tx/content_commitment.js +0 -90
  240. package/src/tx/content_commitment.ts +0 -113
@@ -0,0 +1,40 @@
1
+ import { Buffer32 } from '@aztec/foundation/buffer';
2
+ import type { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { Signature } from '@aztec/foundation/eth-signature';
4
+ import { BufferReader } from '@aztec/foundation/serialize';
5
+ import { Tx } from '../tx/tx.js';
6
+ import { SignatureDomainSeparator } from './signature_utils.js';
7
+ /**
8
+ * A signed collection of transactions.
9
+ * The signature is over the transaction objects themselves, providing
10
+ * data availability guarantees beyond just the transaction hashes.
11
+ */
12
+ export declare class SignedTxs {
13
+ readonly txs: Tx[];
14
+ readonly signature: Signature;
15
+ private sender;
16
+ constructor(
17
+ /** The transactions */
18
+ txs: Tx[],
19
+ /** The proposer's signature over the transactions */
20
+ signature: Signature);
21
+ /**
22
+ * Get the payload to sign for this signed txs.
23
+ */
24
+ getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
25
+ /**
26
+ * Lazily evaluate the sender of the signed txs; result is cached
27
+ * @returns The sender address, or undefined if signature recovery fails
28
+ */
29
+ getSender(): EthAddress | undefined;
30
+ /**
31
+ * Create SignedTxs from a signer function
32
+ */
33
+ static createFromSigner(txs: Tx[], payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<SignedTxs>;
34
+ toBuffer(): Buffer;
35
+ static fromBuffer(buf: Buffer | BufferReader): SignedTxs;
36
+ getSize(): number;
37
+ static empty(): SignedTxs;
38
+ static random(): SignedTxs;
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkX3R4cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9zaWduZWRfdHhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5Qjs7OztHQUlHO0FBQ0gscUJBQWEsU0FBUzthQUtGLEdBQUcsRUFBRSxFQUFFLEVBQUU7YUFFVCxTQUFTLEVBQUUsU0FBUztJQU50QyxPQUFPLENBQUMsTUFBTSxDQUF5QjtJQUV2QztJQUNFLHVCQUF1QjtJQUNQLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDekIscURBQXFEO0lBQ3JDLFNBQVMsRUFBRSxTQUFTLEVBQ2xDO0lBRUo7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEdBQUcsTUFBTSxDQUVsRTtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQU1sQztJQUVEOztPQUVHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0IsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNULGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUN2RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBS3BCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFNBQVMsQ0FLdkQ7SUFFRCxPQUFPLElBQUksTUFBTSxDQUVoQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUV6QjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed_txs.d.ts","sourceRoot":"","sources":["../../src/p2p/signed_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,SAAS;aAKF,GAAG,EAAE,EAAE,EAAE;aAET,SAAS,EAAE,SAAS;IANtC,OAAO,CAAC,MAAM,CAAyB;IAEvC;IACE,uBAAuB;IACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;IACrC,SAAS,EAAE,SAAS,EAClC;IAEJ;;OAEG;IACH,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAElE;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAMlC;IAED;;OAEG;IACH,OAAa,gBAAgB,CAC3B,GAAG,EAAE,EAAE,EAAE,EACT,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,GACvD,OAAO,CAAC,SAAS,CAAC,CAKpB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKvD;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;CACF"}
@@ -0,0 +1,70 @@
1
+ import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
2
+ import { Signature } from '@aztec/foundation/eth-signature';
3
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
+ import { Tx } from '../tx/tx.js';
5
+ import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
6
+ /**
7
+ * A signed collection of transactions.
8
+ * The signature is over the transaction objects themselves, providing
9
+ * data availability guarantees beyond just the transaction hashes.
10
+ */ export class SignedTxs {
11
+ txs;
12
+ signature;
13
+ sender;
14
+ constructor(/** The transactions */ txs, /** The proposer's signature over the transactions */ signature){
15
+ this.txs = txs;
16
+ this.signature = signature;
17
+ }
18
+ /**
19
+ * Get the payload to sign for this signed txs.
20
+ */ getPayloadToSign(domainSeparator) {
21
+ return serializeToBuffer([
22
+ domainSeparator,
23
+ this.txs.length,
24
+ this.txs
25
+ ]);
26
+ }
27
+ /**
28
+ * Lazily evaluate the sender of the signed txs; result is cached
29
+ * @returns The sender address, or undefined if signature recovery fails
30
+ */ getSender() {
31
+ if (!this.sender) {
32
+ const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.signedTxs);
33
+ this.sender = tryRecoverAddress(hashed, this.signature);
34
+ }
35
+ return this.sender;
36
+ }
37
+ /**
38
+ * Create SignedTxs from a signer function
39
+ */ static async createFromSigner(txs, payloadSigner) {
40
+ const tempSignedTxs = new SignedTxs(txs, Signature.empty());
41
+ const hashed = getHashedSignaturePayload(tempSignedTxs, SignatureDomainSeparator.signedTxs);
42
+ const signature = await payloadSigner(hashed);
43
+ return new SignedTxs(txs, signature);
44
+ }
45
+ toBuffer() {
46
+ return serializeToBuffer([
47
+ this.txs.length,
48
+ this.txs,
49
+ this.signature
50
+ ]);
51
+ }
52
+ static fromBuffer(buf) {
53
+ const reader = BufferReader.asReader(buf);
54
+ const txs = reader.readArray(reader.readNumber(), Tx);
55
+ const signature = reader.readObject(Signature);
56
+ return new SignedTxs(txs, signature);
57
+ }
58
+ getSize() {
59
+ return 4 /* txs.length */ + this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) + this.signature.getSize();
60
+ }
61
+ static empty() {
62
+ return new SignedTxs([], Signature.empty());
63
+ }
64
+ static random() {
65
+ return new SignedTxs([
66
+ Tx.random(),
67
+ Tx.random()
68
+ ], Signature.random());
69
+ }
70
+ }
@@ -8,7 +8,8 @@ export declare function getTopicFromString(topicStr: string): TopicType | undefi
8
8
  export declare enum TopicType {
9
9
  tx = "tx",
10
10
  block_proposal = "block_proposal",
11
- block_attestation = "block_attestation"
11
+ checkpoint_proposal = "checkpoint_proposal",
12
+ checkpoint_attestation = "checkpoint_attestation"
12
13
  }
13
14
  export declare function getTopicTypeForClientType(clientType: P2PClientType): TopicType[];
14
15
  export declare function getTopicsForClientAndConfig(clientType: P2PClientType, disableTransactions: boolean): TopicType[];
@@ -22,4 +23,4 @@ export declare function getTopicsForClientAndConfig(clientType: P2PClientType, d
22
23
  * }
23
24
  */
24
25
  export declare function metricsTopicStrToLabels(protocolVersion: string): Map<string, string>;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNfdHlwZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC90b3BpY190eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBRTlFO0FBRUQsa0RBQWtEO0FBQ2xELHdCQUFnQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FBRyxTQUFTLENBVTFFO0FBRUQsb0JBQVksU0FBUztJQUNuQixFQUFFLE9BQU87SUFDVCxjQUFjLG1CQUFtQjtJQUNqQyxpQkFBaUIsc0JBQXNCO0NBQ3hDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxhQUFhLGVBU2xFO0FBRUQsd0JBQWdCLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxlQU1sRztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLHVCQU85RCJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNfdHlwZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC90b3BpY190eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBRTlFO0FBRUQsa0RBQWtEO0FBQ2xELHdCQUFnQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FBRyxTQUFTLENBVTFFO0FBRUQsb0JBQVksU0FBUztJQUNuQixFQUFFLE9BQU87SUFDVCxjQUFjLG1CQUFtQjtJQUNqQyxtQkFBbUIsd0JBQXdCO0lBQzNDLHNCQUFzQiwyQkFBMkI7Q0FDbEQ7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsVUFBVSxFQUFFLGFBQWEsZUFTbEU7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLGVBTWxHO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsZUFBZSxFQUFFLE1BQU0sdUJBTzlEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAU1E;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eASlE;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,eAMlG;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
1
+ {"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAU1E;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;CAClD;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eASlE;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,eAMlG;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
@@ -18,12 +18,18 @@ import { P2PClientType } from './client_type.js';
18
18
  export var TopicType = /*#__PURE__*/ function(TopicType) {
19
19
  TopicType["tx"] = "tx";
20
20
  TopicType["block_proposal"] = "block_proposal";
21
- TopicType["block_attestation"] = "block_attestation";
21
+ TopicType["checkpoint_proposal"] = "checkpoint_proposal";
22
+ TopicType["checkpoint_attestation"] = "checkpoint_attestation";
22
23
  return TopicType;
23
24
  }({});
24
25
  export function getTopicTypeForClientType(clientType) {
25
26
  if (clientType === P2PClientType.Full) {
26
- return Object.values(TopicType);
27
+ return [
28
+ "tx",
29
+ "block_proposal",
30
+ "checkpoint_proposal",
31
+ "checkpoint_attestation"
32
+ ];
27
33
  } else if (clientType === P2PClientType.Prover) {
28
34
  return [
29
35
  "tx",
@@ -16,8 +16,7 @@ export declare class BlockRollupPublicInputs {
16
16
  endState: StateReference;
17
17
  startSpongeBlob: SpongeBlob;
18
18
  endSpongeBlob: SpongeBlob;
19
- startTimestamp: UInt64;
20
- endTimestamp: UInt64;
19
+ timestamp: UInt64;
21
20
  blockHeadersHash: Fr;
22
21
  inHash: Fr;
23
22
  outHash: Fr;
@@ -53,13 +52,9 @@ export declare class BlockRollupPublicInputs {
53
52
  */
54
53
  endSpongeBlob: SpongeBlob,
55
54
  /**
56
- * Timestamp of the first block in this block range.
55
+ * Timestamp of the blocks in this block range.
57
56
  */
58
- startTimestamp: UInt64,
59
- /**
60
- * Timestamp of the last block in this block range.
61
- */
62
- endTimestamp: UInt64,
57
+ timestamp: UInt64,
63
58
  /**
64
59
  * Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
65
60
  * other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
@@ -89,4 +84,4 @@ export declare class BlockRollupPublicInputs {
89
84
  toJSON(): Buffer<ArrayBufferLike>;
90
85
  static get schema(): import("zod").ZodType<BlockRollupPublicInputs, any, string>;
91
86
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLDZCQUE2QixDQUFDO0FBR2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILHFCQUFhLHVCQUF1QjtJQUt6QixTQUFTLEVBQUUsc0JBQXNCO0lBSWpDLGVBQWUsRUFBRSxzQkFBc0I7SUFJdkMsVUFBVSxFQUFFLHNCQUFzQjtJQUlsQyxVQUFVLEVBQUUsY0FBYztJQUkxQixRQUFRLEVBQUUsY0FBYztJQUl4QixlQUFlLEVBQUUsVUFBVTtJQUkzQixhQUFhLEVBQUUsVUFBVTtJQUl6QixjQUFjLEVBQUUsTUFBTTtJQUl0QixZQUFZLEVBQUUsTUFBTTtJQU1wQixnQkFBZ0IsRUFBRSxFQUFFO0lBSXBCLE1BQU0sRUFBRSxFQUFFO0lBSVYsT0FBTyxFQUFFLEVBQUU7SUFJWCxlQUFlLEVBQUUsRUFBRTtJQUluQixtQkFBbUIsRUFBRSxFQUFFO0lBMURoQztJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLHNCQUFzQjtJQUN4Qzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLGNBQWM7SUFDakM7O09BRUc7SUFDSSxRQUFRLEVBQUUsY0FBYztJQUMvQjs7T0FFRztJQUNJLGVBQWUsRUFBRSxVQUFVO0lBQ2xDOztPQUVHO0lBQ0ksYUFBYSxFQUFFLFVBQVU7SUFDaEM7O09BRUc7SUFDSSxjQUFjLEVBQUUsTUFBTTtJQUM3Qjs7T0FFRztJQUNJLFlBQVksRUFBRSxNQUFNO0lBQzNCOzs7O09BSUc7SUFDSSxnQkFBZ0IsRUFBRSxFQUFFO0lBQzNCOztPQUVHO0lBQ0ksTUFBTSxFQUFFLEVBQUU7SUFDakI7O09BRUc7SUFDSSxPQUFPLEVBQUUsRUFBRTtJQUNsQjs7T0FFRztJQUNJLGVBQWUsRUFBRSxFQUFFO0lBQzFCOztPQUVHO0lBQ0ksbUJBQW1CLEVBQUUsRUFBRSxFQUM1QjtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsdUJBQXVCLENBa0J4RTtJQUVELFFBQVEsNEJBaUJQO0lBRUQsUUFBUSxrQkFFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sMkJBRTVCO0lBRUQsTUFBTSw0QkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLGdFQUVoQjtDQUNGIn0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLDZCQUE2QixDQUFDO0FBR2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILHFCQUFhLHVCQUF1QjtJQUt6QixTQUFTLEVBQUUsc0JBQXNCO0lBSWpDLGVBQWUsRUFBRSxzQkFBc0I7SUFJdkMsVUFBVSxFQUFFLHNCQUFzQjtJQUlsQyxVQUFVLEVBQUUsY0FBYztJQUkxQixRQUFRLEVBQUUsY0FBYztJQUl4QixlQUFlLEVBQUUsVUFBVTtJQUkzQixhQUFhLEVBQUUsVUFBVTtJQUl6QixTQUFTLEVBQUUsTUFBTTtJQU1qQixnQkFBZ0IsRUFBRSxFQUFFO0lBSXBCLE1BQU0sRUFBRSxFQUFFO0lBSVYsT0FBTyxFQUFFLEVBQUU7SUFJWCxlQUFlLEVBQUUsRUFBRTtJQUluQixtQkFBbUIsRUFBRSxFQUFFO0lBdERoQztJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLHNCQUFzQjtJQUN4Qzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLGNBQWM7SUFDakM7O09BRUc7SUFDSSxRQUFRLEVBQUUsY0FBYztJQUMvQjs7T0FFRztJQUNJLGVBQWUsRUFBRSxVQUFVO0lBQ2xDOztPQUVHO0lBQ0ksYUFBYSxFQUFFLFVBQVU7SUFDaEM7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQUN4Qjs7OztPQUlHO0lBQ0ksZ0JBQWdCLEVBQUUsRUFBRTtJQUMzQjs7T0FFRztJQUNJLE1BQU0sRUFBRSxFQUFFO0lBQ2pCOztPQUVHO0lBQ0ksT0FBTyxFQUFFLEVBQUU7SUFDbEI7O09BRUc7SUFDSSxlQUFlLEVBQUUsRUFBRTtJQUMxQjs7T0FFRztJQUNJLG1CQUFtQixFQUFFLEVBQUUsRUFDNUI7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHVCQUF1QixDQWlCeEU7SUFFRCxRQUFRLDRCQWdCUDtJQUVELFFBQVEsa0JBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLDJCQUU1QjtJQUVELE1BQU0sNEJBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSxnRUFFaEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAKzB,SAAS,EAAE,sBAAsB;IAIjC,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,UAAU,EAAE,cAAc;IAI1B,QAAQ,EAAE,cAAc;IAIxB,eAAe,EAAE,UAAU;IAI3B,aAAa,EAAE,UAAU;IAIzB,cAAc,EAAE,MAAM;IAItB,YAAY,EAAE,MAAM;IAMpB,gBAAgB,EAAE,EAAE;IAIpB,MAAM,EAAE,EAAE;IAIV,OAAO,EAAE,EAAE;IAIX,eAAe,EAAE,EAAE;IAInB,mBAAmB,EAAE,EAAE;IA1DhC;IACE;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,cAAc,EAAE,MAAM;IAC7B;;OAEG;IACI,YAAY,EAAE,MAAM;IAC3B;;;;OAIG;IACI,gBAAgB,EAAE,EAAE;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE,EAC5B;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uBAAuB,CAkBxE;IAED,QAAQ,4BAiBP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,MAAM,4BAEL;IAED,MAAM,KAAK,MAAM,gEAEhB;CACF"}
1
+ {"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAKzB,SAAS,EAAE,sBAAsB;IAIjC,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,UAAU,EAAE,cAAc;IAI1B,QAAQ,EAAE,cAAc;IAIxB,eAAe,EAAE,UAAU;IAI3B,aAAa,EAAE,UAAU;IAIzB,SAAS,EAAE,MAAM;IAMjB,gBAAgB,EAAE,EAAE;IAIpB,MAAM,EAAE,EAAE;IAIV,OAAO,EAAE,EAAE;IAIX,eAAe,EAAE,EAAE;IAInB,mBAAmB,EAAE,EAAE;IAtDhC;IACE;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;;;OAIG;IACI,gBAAgB,EAAE,EAAE;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE,EAC5B;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uBAAuB,CAiBxE;IAED,QAAQ,4BAgBP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,MAAM,4BAEL;IAED,MAAM,KAAK,MAAM,gEAEhB;CACF"}
@@ -16,8 +16,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
16
16
  endState;
17
17
  startSpongeBlob;
18
18
  endSpongeBlob;
19
- startTimestamp;
20
- endTimestamp;
19
+ timestamp;
21
20
  blockHeadersHash;
22
21
  inHash;
23
22
  outHash;
@@ -38,10 +37,8 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
38
37
  */ startSpongeBlob, /**
39
38
  * Sponge state to absorb blob inputs at the end of this block range.
40
39
  */ endSpongeBlob, /**
41
- * Timestamp of the first block in this block range.
42
- */ startTimestamp, /**
43
- * Timestamp of the last block in this block range.
44
- */ endTimestamp, /**
40
+ * Timestamp of the blocks in this block range.
41
+ */ timestamp, /**
45
42
  * Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
46
43
  * other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
47
44
  * the checkpoint header, enabling validation of the blocks included in a checkpoint given their headers.
@@ -61,8 +58,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
61
58
  this.endState = endState;
62
59
  this.startSpongeBlob = startSpongeBlob;
63
60
  this.endSpongeBlob = endSpongeBlob;
64
- this.startTimestamp = startTimestamp;
65
- this.endTimestamp = endTimestamp;
61
+ this.timestamp = timestamp;
66
62
  this.blockHeadersHash = blockHeadersHash;
67
63
  this.inHash = inHash;
68
64
  this.outHash = outHash;
@@ -71,10 +67,10 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
71
67
  }
72
68
  static fromBuffer(buffer) {
73
69
  const reader = BufferReader.asReader(buffer);
74
- return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(), reader.readUInt64(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
70
+ return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
75
71
  }
76
72
  toBuffer() {
77
- return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.startTimestamp), bigintToUInt64BE(this.endTimestamp), this.blockHeadersHash, this.inHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
73
+ return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.timestamp), this.blockHeadersHash, this.inHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
78
74
  }
79
75
  toString() {
80
76
  return bufferToHex(this.toBuffer());
@@ -1,3 +1,4 @@
1
+ var _computedKey;
1
2
  import { SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -5,6 +6,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
6
  import { inspect } from 'util';
6
7
  import { AztecAddress } from '../aztec-address/index.js';
7
8
  import { GasFees } from '../gas/gas_fees.js';
9
+ _computedKey = inspect.custom;
8
10
  /**
9
11
  * Constants that are the same for the entire checkpoint.
10
12
  * Used in circuits during rollup proving.
@@ -74,7 +76,7 @@ import { GasFees } from '../gas/gas_fees.js';
74
76
  gasFees: this.gasFees.toInspect()
75
77
  };
76
78
  }
77
- [inspect.custom]() {
79
+ [_computedKey]() {
78
80
  return `CheckpointConstantData ${inspect(this.toInspect())}`;
79
81
  }
80
82
  }
@@ -8,16 +8,18 @@ import type { FieldsOf } from '@aztec/foundation/types';
8
8
  import { inspect } from 'util';
9
9
  import { AztecAddress } from '../aztec-address/index.js';
10
10
  import { GasFees } from '../gas/index.js';
11
- import { ContentCommitment } from '../tx/content_commitment.js';
11
+ import type { GlobalVariables } from '../tx/global_variables.js';
12
12
  import type { UInt64 } from '../types/shared.js';
13
13
  /**
14
14
  * Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
15
15
  * TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
16
+ * TODO(palla/mbps): What about CheckpointNumber?
16
17
  */
17
18
  export declare class CheckpointHeader {
18
19
  lastArchiveRoot: Fr;
19
20
  blockHeadersHash: Fr;
20
- contentCommitment: ContentCommitment;
21
+ blobsHash: Fr;
22
+ inHash: Fr;
21
23
  slotNumber: SlotNumber;
22
24
  timestamp: UInt64;
23
25
  coinbase: EthAddress;
@@ -29,8 +31,10 @@ export declare class CheckpointHeader {
29
31
  lastArchiveRoot: Fr,
30
32
  /** Hash of the headers of all blocks in this checkpoint. */
31
33
  blockHeadersHash: Fr,
32
- /** Content commitment of the L2 block. */
33
- contentCommitment: ContentCommitment,
34
+ /** Hash of the blobs in the checkpoint. */
35
+ blobsHash: Fr,
36
+ /** Root of the l1 to l2 messages subtree. */
37
+ inHash: Fr,
34
38
  /** Slot number of the L2 block */
35
39
  slotNumber: SlotNumber,
36
40
  /** Timestamp of the L2 block. */
@@ -44,14 +48,16 @@ export declare class CheckpointHeader {
44
48
  /** Total mana used in the block, computed by the root rollup circuit */
45
49
  totalManaUsed: Fr);
46
50
  static get schema(): ZodFor<CheckpointHeader>;
47
- static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, ContentCommitment, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
51
+ static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
48
52
  static from(fields: FieldsOf<CheckpointHeader>): CheckpointHeader;
49
53
  static fromBuffer(buffer: Buffer | BufferReader): CheckpointHeader;
50
54
  equals(other: CheckpointHeader): boolean;
55
+ /** Returns true if the global variables match those in the checkpoint header. */
56
+ matchesGlobalVariables(other: GlobalVariables): boolean;
51
57
  toBuffer(): Buffer<ArrayBufferLike>;
52
58
  hash(): Fr;
53
59
  static empty(fields?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
54
- static random(overrides?: Partial<FieldsOf<CheckpointHeader>> & Partial<FieldsOf<ContentCommitment>>): CheckpointHeader;
60
+ static random(overrides?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
55
61
  isEmpty(): boolean;
56
62
  /**
57
63
  * Serializes this instance into a string.
@@ -69,11 +75,8 @@ export declare class CheckpointHeader {
69
75
  toInspect(): {
70
76
  lastArchive: `0x${string}`;
71
77
  blockHeadersHash: `0x${string}`;
72
- contentCommitment: {
73
- blobsHash: `0x${string}`;
74
- inHash: `0x${string}`;
75
- outHash: `0x${string}`;
76
- };
78
+ blobsHash: `0x${string}`;
79
+ inHash: `0x${string}`;
77
80
  slotNumber: SlotNumber;
78
81
  timestamp: bigint;
79
82
  coinbase: `0x${string}`;
@@ -86,4 +89,4 @@ export declare class CheckpointHeader {
86
89
  };
87
90
  [inspect.custom](): string;
88
91
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gscUJBQWEsZ0JBQWdCO0lBR2xCLGVBQWUsRUFBRSxFQUFFO0lBRW5CLGdCQUFnQixFQUFFLEVBQUU7SUFFcEIsaUJBQWlCLEVBQUUsaUJBQWlCO0lBRXBDLFVBQVUsRUFBRSxVQUFVO0lBRXRCLFNBQVMsRUFBRSxNQUFNO0lBRWpCLFFBQVEsRUFBRSxVQUFVO0lBRXBCLFlBQVksRUFBRSxZQUFZO0lBRTFCLE9BQU8sRUFBRSxPQUFPO0lBRWhCLGFBQWEsRUFBRSxFQUFFO0lBbEIxQjtJQUNFLDJEQUEyRDtJQUNwRCxlQUFlLEVBQUUsRUFBRTtJQUMxQiw0REFBNEQ7SUFDckQsZ0JBQWdCLEVBQUUsRUFBRTtJQUMzQiwwQ0FBMEM7SUFDbkMsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQzNDLGtDQUFrQztJQUMzQixVQUFVLEVBQUUsVUFBVTtJQUM3QixpQ0FBaUM7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDeEIsaUNBQWlDO0lBQzFCLFFBQVEsRUFBRSxVQUFVO0lBQzNCLCtCQUErQjtJQUN4QixZQUFZLEVBQUUsWUFBWTtJQUNqQyx3Q0FBd0M7SUFDakMsT0FBTyxFQUFFLE9BQU87SUFDdkIsd0VBQXdFO0lBQ2pFLGFBQWEsRUFBRSxFQUFFLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FjNUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsbUdBWWxEO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG9CQUU3QztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLG9CQWM5QztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLFdBWTdCO0lBRUQsUUFBUSw0QkFhUDtJQUVELElBQUksSUFBSSxFQUFFLENBRVQ7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQU0sb0JBYTVEO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFNLEdBQ3pGLGdCQUFnQixDQWFsQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBWWpCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sb0JBRTVCO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxvQkFZakM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLElBQUksVUFBVSxDQUUxQjtJQUVELE1BQU0sSUFBSSxVQUFVLENBZW5CO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFZUjtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQWFmO0NBQ0YifQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNILHFCQUFhLGdCQUFnQjtJQUdsQixlQUFlLEVBQUUsRUFBRTtJQUVuQixnQkFBZ0IsRUFBRSxFQUFFO0lBRXBCLFNBQVMsRUFBRSxFQUFFO0lBRWIsTUFBTSxFQUFFLEVBQUU7SUFFVixVQUFVLEVBQUUsVUFBVTtJQUV0QixTQUFTLEVBQUUsTUFBTTtJQUVqQixRQUFRLEVBQUUsVUFBVTtJQUVwQixZQUFZLEVBQUUsWUFBWTtJQUUxQixPQUFPLEVBQUUsT0FBTztJQUVoQixhQUFhLEVBQUUsRUFBRTtJQXBCMUI7SUFDRSwyREFBMkQ7SUFDcEQsZUFBZSxFQUFFLEVBQUU7SUFDMUIsNERBQTREO0lBQ3JELGdCQUFnQixFQUFFLEVBQUU7SUFDM0IsMkNBQTJDO0lBQ3BDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDZDQUE2QztJQUN0QyxNQUFNLEVBQUUsRUFBRTtJQUNqQixrQ0FBa0M7SUFDM0IsVUFBVSxFQUFFLFVBQVU7SUFDN0IsaUNBQWlDO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ3hCLGlDQUFpQztJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUMzQiwrQkFBK0I7SUFDeEIsWUFBWSxFQUFFLFlBQVk7SUFDakMsd0NBQXdDO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ3ZCLHdFQUF3RTtJQUNqRSxhQUFhLEVBQUUsRUFBRSxFQUN0QjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBZTVDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHdGQWFsRDtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFFN0M7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxvQkFlOUM7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLGdCQUFnQixXQWE3QjtJQUVELGlGQUFpRjtJQUNqRixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxXQVE1QztJQUVELFFBQVEsNEJBY1A7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLG9CQWM1RDtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBTSxHQUFHLGdCQUFnQixDQWNuRjtJQUVELE9BQU8sSUFBSSxPQUFPLENBYWpCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sb0JBRTVCO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxvQkFhakM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLElBQUksVUFBVSxDQUUxQjtJQUVELE1BQU0sSUFBSSxVQUFVLENBZ0JuQjtJQUVELFNBQVM7Ozs7Ozs7Ozs7Ozs7O01BYVI7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FhZjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,qBAAa,gBAAgB;IAGlB,eAAe,EAAE,EAAE;IAEnB,gBAAgB,EAAE,EAAE;IAEpB,iBAAiB,EAAE,iBAAiB;IAEpC,UAAU,EAAE,UAAU;IAEtB,SAAS,EAAE,MAAM;IAEjB,QAAQ,EAAE,UAAU;IAEpB,YAAY,EAAE,YAAY;IAE1B,OAAO,EAAE,OAAO;IAEhB,aAAa,EAAE,EAAE;IAlB1B;IACE,2DAA2D;IACpD,eAAe,EAAE,EAAE;IAC1B,4DAA4D;IACrD,gBAAgB,EAAE,EAAE;IAC3B,0CAA0C;IACnC,iBAAiB,EAAE,iBAAiB;IAC3C,kCAAkC;IAC3B,UAAU,EAAE,UAAU;IAC7B,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;IACvB,wEAAwE;IACjE,aAAa,EAAE,EAAE,EACtB;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAc5C;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,mGAYlD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAE7C;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,oBAc9C;IAED,MAAM,CAAC,KAAK,EAAE,gBAAgB,WAY7B;IAED,QAAQ,4BAaP;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,oBAa5D;IAED,MAAM,CAAC,MAAM,CACX,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAM,GACzF,gBAAgB,CAalB;IAED,OAAO,IAAI,OAAO,CAYjB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,oBAE5B;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,oBAYjC;IAED;;;OAGG;IACH,aAAa,IAAI,UAAU,CAE1B;IAED,MAAM,IAAI,UAAU,CAenB;IAED,SAAS;;;;;;;;;;;;;;;;;MAYR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAaf;CACF"}
1
+ {"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,gBAAgB;IAGlB,eAAe,EAAE,EAAE;IAEnB,gBAAgB,EAAE,EAAE;IAEpB,SAAS,EAAE,EAAE;IAEb,MAAM,EAAE,EAAE;IAEV,UAAU,EAAE,UAAU;IAEtB,SAAS,EAAE,MAAM;IAEjB,QAAQ,EAAE,UAAU;IAEpB,YAAY,EAAE,YAAY;IAE1B,OAAO,EAAE,OAAO;IAEhB,aAAa,EAAE,EAAE;IApB1B;IACE,2DAA2D;IACpD,eAAe,EAAE,EAAE;IAC1B,4DAA4D;IACrD,gBAAgB,EAAE,EAAE;IAC3B,2CAA2C;IACpC,SAAS,EAAE,EAAE;IACpB,6CAA6C;IACtC,MAAM,EAAE,EAAE;IACjB,kCAAkC;IAC3B,UAAU,EAAE,UAAU;IAC7B,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;IACvB,wEAAwE;IACjE,aAAa,EAAE,EAAE,EACtB;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAe5C;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,wFAalD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAE7C;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,oBAe9C;IAED,MAAM,CAAC,KAAK,EAAE,gBAAgB,WAa7B;IAED,iFAAiF;IACjF,sBAAsB,CAAC,KAAK,EAAE,eAAe,WAQ5C;IAED,QAAQ,4BAcP;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,oBAc5D;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,GAAG,gBAAgB,CAcnF;IAED,OAAO,IAAI,OAAO,CAajB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,oBAE5B;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,oBAajC;IAED;;;OAGG;IACH,aAAa,IAAI,UAAU,CAE1B;IAED,MAAM,IAAI,UAAU,CAgBnB;IAED,SAAS;;;;;;;;;;;;;;MAaR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAaf;CACF"}
@@ -1,3 +1,4 @@
1
+ var _computedKey;
1
2
  import { SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { sha256ToField } from '@aztec/foundation/crypto/sha256';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -9,24 +10,27 @@ import { z } from 'zod';
9
10
  import { AztecAddress } from '../aztec-address/index.js';
10
11
  import { GasFees } from '../gas/index.js';
11
12
  import { schemas } from '../schemas/index.js';
12
- import { ContentCommitment } from '../tx/content_commitment.js';
13
+ _computedKey = inspect.custom;
13
14
  /**
14
15
  * Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
15
16
  * TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
17
+ * TODO(palla/mbps): What about CheckpointNumber?
16
18
  */ export class CheckpointHeader {
17
19
  lastArchiveRoot;
18
20
  blockHeadersHash;
19
- contentCommitment;
21
+ blobsHash;
22
+ inHash;
20
23
  slotNumber;
21
24
  timestamp;
22
25
  coinbase;
23
26
  feeRecipient;
24
27
  gasFees;
25
28
  totalManaUsed;
26
- constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /** Content commitment of the L2 block. */ contentCommitment, /** Slot number of the L2 block */ slotNumber, /** Timestamp of the L2 block. */ timestamp, /** Recipient of block reward. */ coinbase, /** Address to receive fees. */ feeRecipient, /** Global gas prices for this block. */ gasFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
29
+ constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /** Hash of the blobs in the checkpoint. */ blobsHash, /** Root of the l1 to l2 messages subtree. */ inHash, /** Slot number of the L2 block */ slotNumber, /** Timestamp of the L2 block. */ timestamp, /** Recipient of block reward. */ coinbase, /** Address to receive fees. */ feeRecipient, /** Global gas prices for this block. */ gasFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
27
30
  this.lastArchiveRoot = lastArchiveRoot;
28
31
  this.blockHeadersHash = blockHeadersHash;
29
- this.contentCommitment = contentCommitment;
32
+ this.blobsHash = blobsHash;
33
+ this.inHash = inHash;
30
34
  this.slotNumber = slotNumber;
31
35
  this.timestamp = timestamp;
32
36
  this.coinbase = coinbase;
@@ -38,7 +42,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
38
42
  return z.object({
39
43
  lastArchiveRoot: schemas.Fr,
40
44
  blockHeadersHash: schemas.Fr,
41
- contentCommitment: ContentCommitment.schema,
45
+ blobsHash: schemas.Fr,
46
+ inHash: schemas.Fr,
42
47
  slotNumber: schemas.SlotNumber,
43
48
  timestamp: schemas.BigInt,
44
49
  coinbase: schemas.EthAddress,
@@ -51,7 +56,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
51
56
  return [
52
57
  fields.lastArchiveRoot,
53
58
  fields.blockHeadersHash,
54
- fields.contentCommitment,
59
+ fields.blobsHash,
60
+ fields.inHash,
55
61
  fields.slotNumber,
56
62
  fields.timestamp,
57
63
  fields.coinbase,
@@ -65,17 +71,21 @@ import { ContentCommitment } from '../tx/content_commitment.js';
65
71
  }
66
72
  static fromBuffer(buffer) {
67
73
  const reader = BufferReader.asReader(buffer);
68
- return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(ContentCommitment), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), reader.readObject(AztecAddress), reader.readObject(GasFees), reader.readObject(Fr));
74
+ return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), reader.readObject(AztecAddress), reader.readObject(GasFees), reader.readObject(Fr));
69
75
  }
70
76
  equals(other) {
71
- return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.contentCommitment.equals(other.contentCommitment) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.totalManaUsed.equals(other.totalManaUsed);
77
+ return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.totalManaUsed.equals(other.totalManaUsed);
78
+ }
79
+ /** Returns true if the global variables match those in the checkpoint header. */ matchesGlobalVariables(other) {
80
+ return this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp;
72
81
  }
73
82
  toBuffer() {
74
83
  // Note: The order here must match the order in the ProposedHeaderLib solidity library.
75
84
  return serializeToBuffer([
76
85
  this.lastArchiveRoot,
77
86
  this.blockHeadersHash,
78
- this.contentCommitment,
87
+ this.blobsHash,
88
+ this.inHash,
79
89
  new Fr(this.slotNumber),
80
90
  bigintToUInt64BE(this.timestamp),
81
91
  this.coinbase,
@@ -93,7 +103,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
93
103
  return CheckpointHeader.from({
94
104
  lastArchiveRoot: Fr.ZERO,
95
105
  blockHeadersHash: Fr.ZERO,
96
- contentCommitment: ContentCommitment.empty(),
106
+ blobsHash: Fr.ZERO,
107
+ inHash: Fr.ZERO,
97
108
  slotNumber: SlotNumber.ZERO,
98
109
  timestamp: 0n,
99
110
  coinbase: EthAddress.ZERO,
@@ -107,7 +118,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
107
118
  return CheckpointHeader.from({
108
119
  lastArchiveRoot: Fr.random(),
109
120
  blockHeadersHash: Fr.random(),
110
- contentCommitment: ContentCommitment.random(overrides),
121
+ blobsHash: Fr.random(),
122
+ inHash: Fr.random(),
111
123
  slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
112
124
  timestamp: BigInt(Math.floor(Date.now() / 1000)),
113
125
  coinbase: EthAddress.random(),
@@ -118,7 +130,7 @@ import { ContentCommitment } from '../tx/content_commitment.js';
118
130
  });
119
131
  }
120
132
  isEmpty() {
121
- return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.contentCommitment.isEmpty() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
133
+ return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
122
134
  }
123
135
  /**
124
136
  * Serializes this instance into a string.
@@ -130,7 +142,7 @@ import { ContentCommitment } from '../tx/content_commitment.js';
130
142
  return CheckpointHeader.fromBuffer(hexToBuffer(str));
131
143
  }
132
144
  static fromViem(header) {
133
- return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), ContentCommitment.fromViem(header.contentCommitment), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, new EthAddress(hexToBuffer(header.coinbase)), new AztecAddress(hexToBuffer(header.feeRecipient)), new GasFees(header.gasFees.feePerDaGas, header.gasFees.feePerL2Gas), new Fr(header.totalManaUsed));
145
+ return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, new EthAddress(hexToBuffer(header.coinbase)), new AztecAddress(hexToBuffer(header.feeRecipient)), new GasFees(header.gasFees.feePerDaGas, header.gasFees.feePerL2Gas), new Fr(header.totalManaUsed));
134
146
  }
135
147
  /**
136
148
  * Returns the slot number as a SlotNumber branded type.
@@ -142,7 +154,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
142
154
  return {
143
155
  lastArchiveRoot: this.lastArchiveRoot.toString(),
144
156
  blockHeadersHash: this.blockHeadersHash.toString(),
145
- contentCommitment: this.contentCommitment.toViem(),
157
+ blobsHash: this.blobsHash.toString(),
158
+ inHash: this.inHash.toString(),
146
159
  slotNumber: BigInt(this.slotNumber),
147
160
  timestamp: this.timestamp,
148
161
  coinbase: this.coinbase.toString(),
@@ -158,7 +171,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
158
171
  return {
159
172
  lastArchive: this.lastArchiveRoot.toString(),
160
173
  blockHeadersHash: this.blockHeadersHash.toString(),
161
- contentCommitment: this.contentCommitment.toInspect(),
174
+ blobsHash: this.blobsHash.toString(),
175
+ inHash: this.inHash.toString(),
162
176
  slotNumber: this.slotNumber,
163
177
  timestamp: this.timestamp,
164
178
  coinbase: this.coinbase.toString(),
@@ -167,17 +181,17 @@ import { ContentCommitment } from '../tx/content_commitment.js';
167
181
  totalManaUsed: this.totalManaUsed.toBigInt()
168
182
  };
169
183
  }
170
- [inspect.custom]() {
171
- const gasfees = `da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas}`;
184
+ [_computedKey]() {
172
185
  return `Header {
173
186
  lastArchiveRoot: ${this.lastArchiveRoot.toString()},
174
187
  blockHeadersHash: ${this.blockHeadersHash.toString()},
175
- contentCommitment: ${inspect(this.contentCommitment)},
188
+ blobsHash: ${inspect(this.blobsHash)},
189
+ inHash: ${inspect(this.inHash)},
176
190
  slotNumber: ${this.slotNumber},
177
191
  timestamp: ${this.timestamp},
178
192
  coinbase: ${this.coinbase.toString()},
179
193
  feeRecipient: ${this.feeRecipient.toString()},
180
- gasFees: ${gasfees},
194
+ gasFees: { da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas} },
181
195
  totalManaUsed: ${this.totalManaUsed.toBigInt()},
182
196
  }`;
183
197
  }
@@ -14,6 +14,7 @@ export declare class CheckpointRollupPublicInputs {
14
14
  previousArchive: AppendOnlyTreeSnapshot;
15
15
  newArchive: AppendOnlyTreeSnapshot;
16
16
  checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
17
+ outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
17
18
  fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
18
19
  startBlobAccumulator: BlobAccumulator;
19
20
  endBlobAccumulator: BlobAccumulator;
@@ -35,6 +36,10 @@ export declare class CheckpointRollupPublicInputs {
35
36
  * The hashes of the headers of the constituent checkpoints.
36
37
  */
37
38
  checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
39
+ /**
40
+ * The `out_hash` values from all checkpoints in this checkpoint range.
41
+ */
42
+ outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
38
43
  /**
39
44
  * The summed transaction fees and recipients of the constituent checkpoints.
40
45
  */
@@ -79,4 +84,4 @@ export declare class FeeRecipient {
79
84
  };
80
85
  static random(): FeeRecipient;
81
86
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSWxFLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFJMUQsb0JBQW9CLEVBQUUsZUFBZTtJQUlyQyxrQkFBa0IsRUFBRSxlQUFlO0lBSW5DLG1CQUFtQixFQUFFLDJCQUEyQjtJQWhDekQ7SUFDRTs7T0FFRztJQUNJLFNBQVMsRUFBRSxpQkFBaUI7SUFDbkM7O09BRUc7SUFDSSxlQUFlLEVBQUUsc0JBQXNCO0lBQzlDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLHNCQUFzQjtJQUN6Qzs7T0FFRztJQUNJLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUN6RTs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQVk5QztJQUVELFFBQVEsNEJBV1A7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSWxFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFJckQsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUkxRCxvQkFBb0IsRUFBRSxlQUFlO0lBSXJDLGtCQUFrQixFQUFFLGVBQWU7SUFJbkMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBcEN6RDtJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLGlCQUFpQjtJQUNuQzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBQ3pFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUM1RDs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQWE5QztJQUVELFFBQVEsNEJBWVA7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIlE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAI1D,oBAAoB,EAAE,eAAe;IAIrC,kBAAkB,EAAE,eAAe;IAInC,mBAAmB,EAAE,2BAA2B;IAhCzD;IACE;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IACzE;;OAEG;IACI,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IACjE;;OAEG;IACI,oBAAoB,EAAE,eAAe;IAC5C;;OAEG;IACI,kBAAkB,EAAE,eAAe;IAC1C;;OAEG;IACI,mBAAmB,EAAE,2BAA2B,EACrD;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,gCAY9C;IAED,QAAQ,4BAWP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,gCAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,qEAEhB;CACF;AAED,qBAAa,YAAY;IAEd,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,EAAE;IAFlB,YACS,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAG7D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,6BAE9C;IAED,QAAQ,SAEP;IAED,MAAM,CAAC,KAAK,iBAEX;IAED,OAAO,YAEN;IAED,cAAc;;;;;;MAKb;IAED,MAAM,CAAC,MAAM,iBAEZ;CACF"}
1
+ {"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIlE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIrD,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAI1D,oBAAoB,EAAE,eAAe;IAIrC,kBAAkB,EAAE,eAAe;IAInC,mBAAmB,EAAE,2BAA2B;IApCzD;IACE;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IACzE;;OAEG;IACI,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAC5D;;OAEG;IACI,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IACjE;;OAEG;IACI,oBAAoB,EAAE,eAAe;IAC5C;;OAEG;IACI,kBAAkB,EAAE,eAAe;IAC1C;;OAEG;IACI,mBAAmB,EAAE,2BAA2B,EACrD;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,gCAa9C;IAED,QAAQ,4BAYP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,gCAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,qEAEhB;CACF;AAED,qBAAa,YAAY;IAEd,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,EAAE;IAFlB,YACS,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAG7D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,6BAE9C;IAED,QAAQ,SAEP;IAED,MAAM,CAAC,KAAK,iBAEX;IAED,OAAO,YAEN;IAED,cAAc;;;;;;MAKb;IAED,MAAM,CAAC,MAAM,iBAEZ;CACF"}
@@ -14,6 +14,7 @@ import { EpochConstantData } from './epoch_constant_data.js';
14
14
  previousArchive;
15
15
  newArchive;
16
16
  checkpointHeaderHashes;
17
+ outHashes;
17
18
  fees;
18
19
  startBlobAccumulator;
19
20
  endBlobAccumulator;
@@ -27,6 +28,8 @@ import { EpochConstantData } from './epoch_constant_data.js';
27
28
  */ newArchive, /**
28
29
  * The hashes of the headers of the constituent checkpoints.
29
30
  */ checkpointHeaderHashes, /**
31
+ * The `out_hash` values from all checkpoints in this checkpoint range.
32
+ */ outHashes, /**
30
33
  * The summed transaction fees and recipients of the constituent checkpoints.
31
34
  */ fees, /**
32
35
  * Accumulated opening proofs for all blobs before this checkpoint range.
@@ -39,6 +42,7 @@ import { EpochConstantData } from './epoch_constant_data.js';
39
42
  this.previousArchive = previousArchive;
40
43
  this.newArchive = newArchive;
41
44
  this.checkpointHeaderHashes = checkpointHeaderHashes;
45
+ this.outHashes = outHashes;
42
46
  this.fees = fees;
43
47
  this.startBlobAccumulator = startBlobAccumulator;
44
48
  this.endBlobAccumulator = endBlobAccumulator;
@@ -46,10 +50,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
46
50
  }
47
51
  static fromBuffer(buffer) {
48
52
  const reader = BufferReader.asReader(buffer);
49
- return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient), reader.readObject(BlobAccumulator), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges));
53
+ return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient), reader.readObject(BlobAccumulator), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges));
50
54
  }
51
55
  toBuffer() {
52
- return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.checkpointHeaderHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
56
+ return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.checkpointHeaderHashes, this.outHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
53
57
  }
54
58
  toString() {
55
59
  return bufferToHex(this.toBuffer());