@aztec/stdlib 4.0.0-nightly.20260112 → 4.0.0-nightly.20260114

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 (219) hide show
  1. package/dest/abi/utils.d.ts +7 -1
  2. package/dest/abi/utils.d.ts.map +1 -1
  3. package/dest/abi/utils.js +7 -0
  4. package/dest/avm/avm.d.ts +300 -300
  5. package/dest/block/attestation_info.d.ts +5 -5
  6. package/dest/block/attestation_info.d.ts.map +1 -1
  7. package/dest/block/attestation_info.js +4 -4
  8. package/dest/block/body.d.ts +1 -1
  9. package/dest/block/body.d.ts.map +1 -1
  10. package/dest/block/body.js +2 -1
  11. package/dest/block/checkpointed_l2_block.d.ts +1 -1
  12. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  13. package/dest/block/checkpointed_l2_block.js +5 -4
  14. package/dest/block/l2_block.d.ts +6 -3
  15. package/dest/block/l2_block.d.ts.map +1 -1
  16. package/dest/block/l2_block.js +3 -3
  17. package/dest/block/l2_block_code_to_purge.d.ts +1 -1
  18. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  19. package/dest/block/l2_block_code_to_purge.js +1 -1
  20. package/dest/block/l2_block_header.d.ts +6 -2
  21. package/dest/block/l2_block_header.d.ts.map +1 -1
  22. package/dest/block/l2_block_header.js +14 -7
  23. package/dest/block/l2_block_new.d.ts +1 -2
  24. package/dest/block/l2_block_new.d.ts.map +1 -1
  25. package/dest/block/l2_block_new.js +4 -1
  26. package/dest/block/l2_block_source.d.ts +247 -42
  27. package/dest/block/l2_block_source.d.ts.map +1 -1
  28. package/dest/block/l2_block_source.js +23 -5
  29. package/dest/block/l2_block_stream/index.d.ts +2 -1
  30. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  31. package/dest/block/l2_block_stream/index.js +1 -0
  32. package/dest/block/l2_block_stream/interfaces.d.ts +16 -5
  33. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  34. package/dest/block/l2_block_stream/l2_block_stream.d.ts +4 -2
  35. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  36. package/dest/block/l2_block_stream/l2_block_stream.js +102 -30
  37. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
  38. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  39. package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
  40. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
  41. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
  42. package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
  43. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  44. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  45. package/dest/block/test/l2_tips_store_test_suite.js +483 -38
  46. package/dest/block/validate_block_result.d.ts +24 -24
  47. package/dest/block/validate_block_result.d.ts.map +1 -1
  48. package/dest/block/validate_block_result.js +18 -17
  49. package/dest/checkpoint/checkpoint.d.ts +2 -1
  50. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  51. package/dest/checkpoint/checkpoint.js +11 -1
  52. package/dest/checkpoint/checkpoint_info.d.ts +32 -3
  53. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  54. package/dest/checkpoint/checkpoint_info.js +34 -1
  55. package/dest/checkpoint/index.d.ts +2 -1
  56. package/dest/checkpoint/index.d.ts.map +1 -1
  57. package/dest/checkpoint/index.js +1 -0
  58. package/dest/checkpoint/published_checkpoint.d.ts +1 -1
  59. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  60. package/dest/checkpoint/published_checkpoint.js +4 -3
  61. package/dest/contract/index.d.ts +1 -3
  62. package/dest/contract/index.d.ts.map +1 -1
  63. package/dest/contract/index.js +0 -2
  64. package/dest/deserialization/index.d.ts +11 -0
  65. package/dest/deserialization/index.d.ts.map +1 -0
  66. package/dest/deserialization/index.js +10 -0
  67. package/dest/interfaces/api_limit.d.ts +2 -1
  68. package/dest/interfaces/api_limit.d.ts.map +1 -1
  69. package/dest/interfaces/api_limit.js +1 -0
  70. package/dest/interfaces/archiver.d.ts +6 -6
  71. package/dest/interfaces/archiver.d.ts.map +1 -1
  72. package/dest/interfaces/archiver.js +6 -4
  73. package/dest/interfaces/aztec-node-admin.d.ts +12 -9
  74. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  75. package/dest/interfaces/aztec-node-admin.js +2 -2
  76. package/dest/interfaces/aztec-node.d.ts +2 -2
  77. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  78. package/dest/interfaces/aztec-node.js +8 -3
  79. package/dest/interfaces/block-builder.d.ts +2 -2
  80. package/dest/interfaces/block-builder.d.ts.map +1 -1
  81. package/dest/interfaces/configs.d.ts +6 -1
  82. package/dest/interfaces/configs.d.ts.map +1 -1
  83. package/dest/interfaces/configs.js +2 -1
  84. package/dest/interfaces/p2p.d.ts +7 -9
  85. package/dest/interfaces/p2p.d.ts.map +1 -1
  86. package/dest/interfaces/p2p.js +3 -4
  87. package/dest/interfaces/validator.d.ts +41 -15
  88. package/dest/interfaces/validator.d.ts.map +1 -1
  89. package/dest/interfaces/validator.js +3 -2
  90. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
  91. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  92. package/dest/kernel/hints/build_note_hash_read_request_hints.js +5 -6
  93. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  94. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  95. package/dest/messaging/l2_to_l1_membership.js +5 -3
  96. package/dest/messaging/out_hash.d.ts +41 -4
  97. package/dest/messaging/out_hash.d.ts.map +1 -1
  98. package/dest/messaging/out_hash.js +52 -26
  99. package/dest/note/note_dao.d.ts +8 -5
  100. package/dest/note/note_dao.d.ts.map +1 -1
  101. package/dest/note/note_dao.js +15 -12
  102. package/dest/p2p/attestation_utils.d.ts +3 -3
  103. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  104. package/dest/p2p/attestation_utils.js +1 -1
  105. package/dest/p2p/block_proposal.d.ts +85 -21
  106. package/dest/p2p/block_proposal.d.ts.map +1 -1
  107. package/dest/p2p/block_proposal.js +126 -38
  108. package/dest/p2p/checkpoint_attestation.d.ts +78 -0
  109. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
  110. package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
  111. package/dest/p2p/checkpoint_proposal.d.ts +155 -0
  112. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
  113. package/dest/p2p/checkpoint_proposal.js +222 -0
  114. package/dest/p2p/consensus_payload.d.ts +5 -2
  115. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  116. package/dest/p2p/consensus_payload.js +3 -2
  117. package/dest/p2p/index.d.ts +4 -2
  118. package/dest/p2p/index.d.ts.map +1 -1
  119. package/dest/p2p/index.js +3 -1
  120. package/dest/p2p/signature_utils.d.ts +5 -3
  121. package/dest/p2p/signature_utils.d.ts.map +1 -1
  122. package/dest/p2p/signature_utils.js +3 -1
  123. package/dest/p2p/signed_txs.d.ts +40 -0
  124. package/dest/p2p/signed_txs.d.ts.map +1 -0
  125. package/dest/p2p/signed_txs.js +75 -0
  126. package/dest/p2p/topic_type.d.ts +3 -2
  127. package/dest/p2p/topic_type.d.ts.map +1 -1
  128. package/dest/p2p/topic_type.js +8 -2
  129. package/dest/rollup/block_headers_hash.js +1 -1
  130. package/dest/rollup/block_rollup_public_inputs.d.ts +2 -2
  131. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  132. package/dest/rollup/checkpoint_header.d.ts +16 -2
  133. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  134. package/dest/rollup/checkpoint_header.js +25 -5
  135. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +11 -6
  136. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  137. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  138. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +14 -3
  139. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  140. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  141. package/dest/rollup/root_rollup_public_inputs.d.ts +5 -2
  142. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  143. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  144. package/dest/tests/factories.d.ts +13 -1
  145. package/dest/tests/factories.d.ts.map +1 -1
  146. package/dest/tests/factories.js +53 -3
  147. package/dest/tests/mocks.d.ts +55 -9
  148. package/dest/tests/mocks.d.ts.map +1 -1
  149. package/dest/tests/mocks.js +84 -35
  150. package/dest/tx/private_execution_result.d.ts +1 -5
  151. package/dest/tx/private_execution_result.d.ts.map +1 -1
  152. package/dest/tx/private_execution_result.js +3 -20
  153. package/dest/tx/tx_effect.d.ts +1 -6
  154. package/dest/tx/tx_effect.d.ts.map +1 -1
  155. package/dest/tx/tx_effect.js +0 -7
  156. package/package.json +9 -8
  157. package/src/abi/utils.ts +17 -0
  158. package/src/block/attestation_info.ts +9 -6
  159. package/src/block/body.ts +2 -1
  160. package/src/block/checkpointed_l2_block.ts +5 -4
  161. package/src/block/l2_block.ts +4 -3
  162. package/src/block/l2_block_code_to_purge.ts +1 -0
  163. package/src/block/l2_block_header.ts +13 -0
  164. package/src/block/l2_block_new.ts +5 -1
  165. package/src/block/l2_block_source.ts +69 -17
  166. package/src/block/l2_block_stream/index.ts +1 -0
  167. package/src/block/l2_block_stream/interfaces.ts +16 -4
  168. package/src/block/l2_block_stream/l2_block_stream.ts +121 -38
  169. package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
  170. package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
  171. package/src/block/test/l2_tips_store_test_suite.ts +485 -36
  172. package/src/block/validate_block_result.ts +40 -35
  173. package/src/checkpoint/checkpoint.ts +12 -1
  174. package/src/checkpoint/checkpoint_info.ts +45 -2
  175. package/src/checkpoint/index.ts +1 -0
  176. package/src/checkpoint/published_checkpoint.ts +4 -3
  177. package/src/contract/index.ts +0 -2
  178. package/src/deserialization/index.ts +21 -0
  179. package/src/interfaces/api_limit.ts +1 -0
  180. package/src/interfaces/archiver.ts +14 -6
  181. package/src/interfaces/aztec-node-admin.ts +5 -2
  182. package/src/interfaces/aztec-node.ts +30 -3
  183. package/src/interfaces/block-builder.ts +1 -0
  184. package/src/interfaces/configs.ts +5 -0
  185. package/src/interfaces/p2p.ts +8 -12
  186. package/src/interfaces/validator.ts +57 -11
  187. package/src/kernel/hints/build_note_hash_read_request_hints.ts +5 -8
  188. package/src/messaging/l2_to_l1_membership.ts +5 -3
  189. package/src/messaging/out_hash.ts +60 -29
  190. package/src/note/note_dao.ts +18 -13
  191. package/src/p2p/attestation_utils.ts +3 -3
  192. package/src/p2p/block_proposal.ts +191 -42
  193. package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
  194. package/src/p2p/checkpoint_proposal.ts +342 -0
  195. package/src/p2p/consensus_payload.ts +5 -2
  196. package/src/p2p/index.ts +3 -1
  197. package/src/p2p/signature_utils.ts +3 -1
  198. package/src/p2p/signed_txs.ts +88 -0
  199. package/src/p2p/topic_type.ts +3 -2
  200. package/src/rollup/block_headers_hash.ts +1 -1
  201. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  202. package/src/rollup/checkpoint_header.ts +33 -0
  203. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  204. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  205. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  206. package/src/tests/factories.ts +46 -2
  207. package/src/tests/mocks.ts +146 -50
  208. package/src/tx/private_execution_result.ts +0 -15
  209. package/src/tx/tx_effect.ts +0 -9
  210. package/dest/contract/contract_class_metadata.d.ts +0 -8
  211. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  212. package/dest/contract/contract_class_metadata.js +0 -1
  213. package/dest/contract/contract_metadata.d.ts +0 -7
  214. package/dest/contract/contract_metadata.d.ts.map +0 -1
  215. package/dest/contract/contract_metadata.js +0 -1
  216. package/dest/p2p/block_attestation.d.ts +0 -77
  217. package/dest/p2p/block_attestation.d.ts.map +0 -1
  218. package/src/contract/contract_class_metadata.ts +0 -8
  219. package/src/contract/contract_metadata.ts +0 -7
@@ -8,16 +8,19 @@ 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 type { GlobalVariables } from '../tx/global_variables.js';
11
12
  import type { UInt64 } from '../types/shared.js';
12
13
  /**
13
14
  * Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
14
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?
15
17
  */
16
18
  export declare class CheckpointHeader {
17
19
  lastArchiveRoot: Fr;
18
20
  blockHeadersHash: Fr;
19
21
  blobsHash: Fr;
20
22
  inHash: Fr;
23
+ epochOutHash: Fr;
21
24
  slotNumber: SlotNumber;
22
25
  timestamp: UInt64;
23
26
  coinbase: EthAddress;
@@ -33,6 +36,14 @@ export declare class CheckpointHeader {
33
36
  blobsHash: Fr,
34
37
  /** Root of the l1 to l2 messages subtree. */
35
38
  inHash: Fr,
39
+ /**
40
+ * The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
41
+ * index 0, the second at index 1, and so on.
42
+ * Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and
43
+ * including the current checkpoint. Any subsequent checkpoints added to the same epoch are not reflected in this
44
+ * value.
45
+ */
46
+ epochOutHash: Fr,
36
47
  /** Slot number of the L2 block */
37
48
  slotNumber: SlotNumber,
38
49
  /** Timestamp of the L2 block. */
@@ -46,10 +57,12 @@ export declare class CheckpointHeader {
46
57
  /** Total mana used in the block, computed by the root rollup circuit */
47
58
  totalManaUsed: Fr);
48
59
  static get schema(): ZodFor<CheckpointHeader>;
49
- static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
60
+ static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
50
61
  static from(fields: FieldsOf<CheckpointHeader>): CheckpointHeader;
51
62
  static fromBuffer(buffer: Buffer | BufferReader): CheckpointHeader;
52
63
  equals(other: CheckpointHeader): boolean;
64
+ /** Returns true if the global variables match those in the checkpoint header. */
65
+ matchesGlobalVariables(other: GlobalVariables): boolean;
53
66
  toBuffer(): Buffer<ArrayBufferLike>;
54
67
  hash(): Fr;
55
68
  static empty(fields?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
@@ -73,6 +86,7 @@ export declare class CheckpointHeader {
73
86
  blockHeadersHash: `0x${string}`;
74
87
  blobsHash: `0x${string}`;
75
88
  inHash: `0x${string}`;
89
+ epochOutHash: `0x${string}`;
76
90
  slotNumber: SlotNumber;
77
91
  timestamp: bigint;
78
92
  coinbase: `0x${string}`;
@@ -85,4 +99,4 @@ export declare class CheckpointHeader {
85
99
  };
86
100
  [inspect.custom](): string;
87
101
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gscUJBQWEsZ0JBQWdCO0lBR2xCLGVBQWUsRUFBRSxFQUFFO0lBRW5CLGdCQUFnQixFQUFFLEVBQUU7SUFFcEIsU0FBUyxFQUFFLEVBQUU7SUFFYixNQUFNLEVBQUUsRUFBRTtJQUVWLFVBQVUsRUFBRSxVQUFVO0lBRXRCLFNBQVMsRUFBRSxNQUFNO0lBRWpCLFFBQVEsRUFBRSxVQUFVO0lBRXBCLFlBQVksRUFBRSxZQUFZO0lBRTFCLE9BQU8sRUFBRSxPQUFPO0lBRWhCLGFBQWEsRUFBRSxFQUFFO0lBcEIxQjtJQUNFLDJEQUEyRDtJQUNwRCxlQUFlLEVBQUUsRUFBRTtJQUMxQiw0REFBNEQ7SUFDckQsZ0JBQWdCLEVBQUUsRUFBRTtJQUMzQiwyQ0FBMkM7SUFDcEMsU0FBUyxFQUFFLEVBQUU7SUFDcEIsNkNBQTZDO0lBQ3RDLE1BQU0sRUFBRSxFQUFFO0lBQ2pCLGtDQUFrQztJQUMzQixVQUFVLEVBQUUsVUFBVTtJQUM3QixpQ0FBaUM7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDeEIsaUNBQWlDO0lBQzFCLFFBQVEsRUFBRSxVQUFVO0lBQzNCLCtCQUErQjtJQUN4QixZQUFZLEVBQUUsWUFBWTtJQUNqQyx3Q0FBd0M7SUFDakMsT0FBTyxFQUFFLE9BQU87SUFDdkIsd0VBQXdFO0lBQ2pFLGFBQWEsRUFBRSxFQUFFLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FlNUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsd0ZBYWxEO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG9CQUU3QztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLG9CQWU5QztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLFdBYTdCO0lBRUQsUUFBUSw0QkFjUDtJQUVELElBQUksSUFBSSxFQUFFLENBRVQ7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQU0sb0JBYzVEO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLEdBQUcsZ0JBQWdCLENBY25GO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FhakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxvQkFFNUI7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLG9CQWFqQztJQUVEOzs7T0FHRztJQUNILGFBQWEsSUFBSSxVQUFVLENBRTFCO0lBRUQsTUFBTSxJQUFJLFVBQVUsQ0FnQm5CO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7TUFhUjtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQWFmO0NBQ0YifQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNILHFCQUFhLGdCQUFnQjtJQUdsQixlQUFlLEVBQUUsRUFBRTtJQUVuQixnQkFBZ0IsRUFBRSxFQUFFO0lBRXBCLFNBQVMsRUFBRSxFQUFFO0lBRWIsTUFBTSxFQUFFLEVBQUU7SUFRVixZQUFZLEVBQUUsRUFBRTtJQUVoQixVQUFVLEVBQUUsVUFBVTtJQUV0QixTQUFTLEVBQUUsTUFBTTtJQUVqQixRQUFRLEVBQUUsVUFBVTtJQUVwQixZQUFZLEVBQUUsWUFBWTtJQUUxQixPQUFPLEVBQUUsT0FBTztJQUVoQixhQUFhLEVBQUUsRUFBRTtJQTVCMUI7SUFDRSwyREFBMkQ7SUFDcEQsZUFBZSxFQUFFLEVBQUU7SUFDMUIsNERBQTREO0lBQ3JELGdCQUFnQixFQUFFLEVBQUU7SUFDM0IsMkNBQTJDO0lBQ3BDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDZDQUE2QztJQUN0QyxNQUFNLEVBQUUsRUFBRTtJQUNqQjs7Ozs7O09BTUc7SUFDSSxZQUFZLEVBQUUsRUFBRTtJQUN2QixrQ0FBa0M7SUFDM0IsVUFBVSxFQUFFLFVBQVU7SUFDN0IsaUNBQWlDO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ3hCLGlDQUFpQztJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUMzQiwrQkFBK0I7SUFDeEIsWUFBWSxFQUFFLFlBQVk7SUFDakMsd0NBQXdDO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ3ZCLHdFQUF3RTtJQUNqRSxhQUFhLEVBQUUsRUFBRSxFQUN0QjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBZ0I1QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0RkFjbEQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBRTdDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksb0JBZ0I5QztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLFdBYzdCO0lBRUQsaUZBQWlGO0lBQ2pGLHNCQUFzQixDQUFDLEtBQUssRUFBRSxlQUFlLFdBUTVDO0lBRUQsUUFBUSw0QkFlUDtJQUVELElBQUksSUFBSSxFQUFFLENBRVQ7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQU0sb0JBZTVEO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLEdBQUcsZ0JBQWdCLENBZW5GO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FjakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxvQkFFNUI7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLG9CQWNqQztJQUVEOzs7T0FHRztJQUNILGFBQWEsSUFBSSxVQUFVLENBRTFCO0lBRUQsTUFBTSxJQUFJLFVBQVUsQ0FpQm5CO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7O01BY1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FjZjtDQUNGIn0=
@@ -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,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;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,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
+ {"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"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"}
@@ -14,22 +14,31 @@ _computedKey = inspect.custom;
14
14
  /**
15
15
  * Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
16
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?
17
18
  */ export class CheckpointHeader {
18
19
  lastArchiveRoot;
19
20
  blockHeadersHash;
20
21
  blobsHash;
21
22
  inHash;
23
+ epochOutHash;
22
24
  slotNumber;
23
25
  timestamp;
24
26
  coinbase;
25
27
  feeRecipient;
26
28
  gasFees;
27
29
  totalManaUsed;
28
- 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){
30
+ 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, /**
31
+ * The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
32
+ * index 0, the second at index 1, and so on.
33
+ * Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and
34
+ * including the current checkpoint. Any subsequent checkpoints added to the same epoch are not reflected in this
35
+ * value.
36
+ */ epochOutHash, /** 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
37
  this.lastArchiveRoot = lastArchiveRoot;
30
38
  this.blockHeadersHash = blockHeadersHash;
31
39
  this.blobsHash = blobsHash;
32
40
  this.inHash = inHash;
41
+ this.epochOutHash = epochOutHash;
33
42
  this.slotNumber = slotNumber;
34
43
  this.timestamp = timestamp;
35
44
  this.coinbase = coinbase;
@@ -43,6 +52,7 @@ _computedKey = inspect.custom;
43
52
  blockHeadersHash: schemas.Fr,
44
53
  blobsHash: schemas.Fr,
45
54
  inHash: schemas.Fr,
55
+ epochOutHash: schemas.Fr,
46
56
  slotNumber: schemas.SlotNumber,
47
57
  timestamp: schemas.BigInt,
48
58
  coinbase: schemas.EthAddress,
@@ -57,6 +67,7 @@ _computedKey = inspect.custom;
57
67
  fields.blockHeadersHash,
58
68
  fields.blobsHash,
59
69
  fields.inHash,
70
+ fields.epochOutHash,
60
71
  fields.slotNumber,
61
72
  fields.timestamp,
62
73
  fields.coinbase,
@@ -70,10 +81,13 @@ _computedKey = inspect.custom;
70
81
  }
71
82
  static fromBuffer(buffer) {
72
83
  const reader = BufferReader.asReader(buffer);
73
- 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));
84
+ return new CheckpointHeader(reader.readObject(Fr), 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));
74
85
  }
75
86
  equals(other) {
76
- 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);
87
+ return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.epochOutHash.equals(other.epochOutHash) && 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);
88
+ }
89
+ /** Returns true if the global variables match those in the checkpoint header. */ matchesGlobalVariables(other) {
90
+ return this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp;
77
91
  }
78
92
  toBuffer() {
79
93
  // Note: The order here must match the order in the ProposedHeaderLib solidity library.
@@ -82,6 +96,7 @@ _computedKey = inspect.custom;
82
96
  this.blockHeadersHash,
83
97
  this.blobsHash,
84
98
  this.inHash,
99
+ this.epochOutHash,
85
100
  new Fr(this.slotNumber),
86
101
  bigintToUInt64BE(this.timestamp),
87
102
  this.coinbase,
@@ -101,6 +116,7 @@ _computedKey = inspect.custom;
101
116
  blockHeadersHash: Fr.ZERO,
102
117
  blobsHash: Fr.ZERO,
103
118
  inHash: Fr.ZERO,
119
+ epochOutHash: Fr.ZERO,
104
120
  slotNumber: SlotNumber.ZERO,
105
121
  timestamp: 0n,
106
122
  coinbase: EthAddress.ZERO,
@@ -116,6 +132,7 @@ _computedKey = inspect.custom;
116
132
  blockHeadersHash: Fr.random(),
117
133
  blobsHash: Fr.random(),
118
134
  inHash: Fr.random(),
135
+ epochOutHash: Fr.random(),
119
136
  slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
120
137
  timestamp: BigInt(Math.floor(Date.now() / 1000)),
121
138
  coinbase: EthAddress.random(),
@@ -126,7 +143,7 @@ _computedKey = inspect.custom;
126
143
  });
127
144
  }
128
145
  isEmpty() {
129
- 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();
146
+ return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && this.epochOutHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
130
147
  }
131
148
  /**
132
149
  * Serializes this instance into a string.
@@ -138,7 +155,7 @@ _computedKey = inspect.custom;
138
155
  return CheckpointHeader.fromBuffer(hexToBuffer(str));
139
156
  }
140
157
  static fromViem(header) {
141
- 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));
158
+ return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), Fr.fromString(header.outHash), 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));
142
159
  }
143
160
  /**
144
161
  * Returns the slot number as a SlotNumber branded type.
@@ -152,6 +169,7 @@ _computedKey = inspect.custom;
152
169
  blockHeadersHash: this.blockHeadersHash.toString(),
153
170
  blobsHash: this.blobsHash.toString(),
154
171
  inHash: this.inHash.toString(),
172
+ outHash: this.epochOutHash.toString(),
155
173
  slotNumber: BigInt(this.slotNumber),
156
174
  timestamp: this.timestamp,
157
175
  coinbase: this.coinbase.toString(),
@@ -169,6 +187,7 @@ _computedKey = inspect.custom;
169
187
  blockHeadersHash: this.blockHeadersHash.toString(),
170
188
  blobsHash: this.blobsHash.toString(),
171
189
  inHash: this.inHash.toString(),
190
+ epochOutHash: this.epochOutHash.toString(),
172
191
  slotNumber: this.slotNumber,
173
192
  timestamp: this.timestamp,
174
193
  coinbase: this.coinbase.toString(),
@@ -183,6 +202,7 @@ _computedKey = inspect.custom;
183
202
  blockHeadersHash: ${this.blockHeadersHash.toString()},
184
203
  blobsHash: ${inspect(this.blobsHash)},
185
204
  inHash: ${inspect(this.inHash)},
205
+ epochOutHash: ${inspect(this.epochOutHash)},
186
206
  slotNumber: ${this.slotNumber},
187
207
  timestamp: ${this.timestamp},
188
208
  coinbase: ${this.coinbase.toString()},
@@ -13,8 +13,9 @@ export declare class CheckpointRollupPublicInputs {
13
13
  constants: EpochConstantData;
14
14
  previousArchive: AppendOnlyTreeSnapshot;
15
15
  newArchive: AppendOnlyTreeSnapshot;
16
+ previousOutHash: AppendOnlyTreeSnapshot;
17
+ newOutHash: AppendOnlyTreeSnapshot;
16
18
  checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
17
- outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
18
19
  fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
19
20
  startBlobAccumulator: BlobAccumulator;
20
21
  endBlobAccumulator: BlobAccumulator;
@@ -33,13 +34,17 @@ export declare class CheckpointRollupPublicInputs {
33
34
  */
34
35
  newArchive: AppendOnlyTreeSnapshot,
35
36
  /**
36
- * The hashes of the headers of the constituent checkpoints.
37
+ * The out hash tree snapshot immediately before this checkpoint range.
37
38
  */
38
- checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
39
+ previousOutHash: AppendOnlyTreeSnapshot,
40
+ /**
41
+ * The out hash tree snapshot after applying this checkpoint range.
42
+ */
43
+ newOutHash: AppendOnlyTreeSnapshot,
39
44
  /**
40
- * The `out_hash` values from all checkpoints in this checkpoint range.
45
+ * The hashes of the headers of the constituent checkpoints.
41
46
  */
42
- outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
47
+ checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
43
48
  /**
44
49
  * The summed transaction fees and recipients of the constituent checkpoints.
45
50
  */
@@ -84,4 +89,4 @@ export declare class FeeRecipient {
84
89
  };
85
90
  static random(): FeeRecipient;
86
91
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSWxFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFJckQsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUkxRCxvQkFBb0IsRUFBRSxlQUFlO0lBSXJDLGtCQUFrQixFQUFFLGVBQWU7SUFJbkMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBcEN6RDtJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLGlCQUFpQjtJQUNuQzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBQ3pFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUM1RDs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQWE5QztJQUVELFFBQVEsNEJBWVA7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsZUFBZSxFQUFFLHNCQUFzQjtJQUl2QyxVQUFVLEVBQUUsc0JBQXNCO0lBSWxDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUlsRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSTFELG9CQUFvQixFQUFFLGVBQWU7SUFJckMsa0JBQWtCLEVBQUUsZUFBZTtJQUluQyxtQkFBbUIsRUFBRSwyQkFBMkI7SUF4Q3pEO0lBQ0U7O09BRUc7SUFDSSxTQUFTLEVBQUUsaUJBQWlCO0lBQ25DOztPQUVHO0lBQ0ksZUFBZSxFQUFFLHNCQUFzQjtJQUM5Qzs7T0FFRztJQUNJLFVBQVUsRUFBRSxzQkFBc0I7SUFDekM7O09BRUc7SUFDSSxlQUFlLEVBQUUsc0JBQXNCO0lBQzlDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLHNCQUFzQjtJQUN6Qzs7T0FFRztJQUNJLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUN6RTs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQWM5QztJQUVELFFBQVEsNEJBYVA7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
@@ -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,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"}
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,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;IAxCzD;IACE;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;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,gCAc9C;IAED,QAAQ,4BAaP;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"}
@@ -13,8 +13,9 @@ import { EpochConstantData } from './epoch_constant_data.js';
13
13
  constants;
14
14
  previousArchive;
15
15
  newArchive;
16
+ previousOutHash;
17
+ newOutHash;
16
18
  checkpointHeaderHashes;
17
- outHashes;
18
19
  fees;
19
20
  startBlobAccumulator;
20
21
  endBlobAccumulator;
@@ -26,10 +27,12 @@ import { EpochConstantData } from './epoch_constant_data.js';
26
27
  */ previousArchive, /**
27
28
  * Archive tree after adding this checkpoint range.
28
29
  */ newArchive, /**
30
+ * The out hash tree snapshot immediately before this checkpoint range.
31
+ */ previousOutHash, /**
32
+ * The out hash tree snapshot after applying this checkpoint range.
33
+ */ newOutHash, /**
29
34
  * The hashes of the headers of the constituent checkpoints.
30
35
  */ checkpointHeaderHashes, /**
31
- * The `out_hash` values from all checkpoints in this checkpoint range.
32
- */ outHashes, /**
33
36
  * The summed transaction fees and recipients of the constituent checkpoints.
34
37
  */ fees, /**
35
38
  * Accumulated opening proofs for all blobs before this checkpoint range.
@@ -41,8 +44,9 @@ import { EpochConstantData } from './epoch_constant_data.js';
41
44
  this.constants = constants;
42
45
  this.previousArchive = previousArchive;
43
46
  this.newArchive = newArchive;
47
+ this.previousOutHash = previousOutHash;
48
+ this.newOutHash = newOutHash;
44
49
  this.checkpointHeaderHashes = checkpointHeaderHashes;
45
- this.outHashes = outHashes;
46
50
  this.fees = fees;
47
51
  this.startBlobAccumulator = startBlobAccumulator;
48
52
  this.endBlobAccumulator = endBlobAccumulator;
@@ -50,10 +54,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
50
54
  }
51
55
  static fromBuffer(buffer) {
52
56
  const reader = BufferReader.asReader(buffer);
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));
57
+ return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), 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));
54
58
  }
55
59
  toBuffer() {
56
- return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.checkpointHeaderHashes, this.outHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
60
+ return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.previousOutHash, this.newOutHash, this.checkpointHeaderHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
57
61
  }
58
62
  toString() {
59
63
  return bufferToHex(this.toBuffer());
@@ -1,15 +1,18 @@
1
1
  import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
- import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, OUT_HASH_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { BLS12Point } from '@aztec/foundation/curves/bls12';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
6
6
  import type { FieldsOf } from '@aztec/foundation/types';
7
7
  import { type RollupHonkProofData } from '../proofs/proof_data.js';
8
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
8
9
  import { BlockHeader } from '../tx/block_header.js';
9
10
  import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
10
11
  export declare class CheckpointRootRollupHints {
11
12
  previousBlockHeader: BlockHeader;
12
13
  previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
14
+ previousOutHash: AppendOnlyTreeSnapshot;
15
+ newOutHashSiblingPath: Tuple<Fr, typeof OUT_HASH_TREE_HEIGHT>;
13
16
  startBlobAccumulator: BlobAccumulator;
14
17
  finalBlobChallenges: FinalBlobBatchingChallenges;
15
18
  blobFields: Fr[];
@@ -24,6 +27,14 @@ export declare class CheckpointRootRollupHints {
24
27
  * Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
25
28
  */
26
29
  previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
30
+ /**
31
+ * The out hash tree snapshot immediately before this checkpoint.
32
+ */
33
+ previousOutHash: AppendOnlyTreeSnapshot,
34
+ /**
35
+ * Hint for inserting the new out hash into the out hash tree.
36
+ */
37
+ newOutHashSiblingPath: Tuple<Fr, typeof OUT_HASH_TREE_HEIGHT>,
27
38
  /**
28
39
  * The current blob accumulation state across the epoch.
29
40
  */
@@ -48,7 +59,7 @@ export declare class CheckpointRootRollupHints {
48
59
  */
49
60
  blobsHash: Fr);
50
61
  static from(fields: FieldsOf<CheckpointRootRollupHints>): CheckpointRootRollupHints;
51
- static getFields(fields: FieldsOf<CheckpointRootRollupHints>): readonly [BlockHeader, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], BlobAccumulator, FinalBlobBatchingChallenges, Fr[], [BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point], Fr];
62
+ static getFields(fields: FieldsOf<CheckpointRootRollupHints>): readonly [BlockHeader, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], AppendOnlyTreeSnapshot, [Fr, Fr, Fr, Fr, Fr, Fr], BlobAccumulator, FinalBlobBatchingChallenges, Fr[], [BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point], Fr];
52
63
  toBuffer(): Buffer<ArrayBufferLike>;
53
64
  static fromBuffer(buffer: Buffer | BufferReader): CheckpointRootRollupHints;
54
65
  toString(): `0x${string}`;
@@ -97,4 +108,4 @@ export declare class CheckpointPaddingRollupPrivateInputs {
97
108
  toJSON(): Buffer<ArrayBuffer>;
98
109
  static get schema(): import("zod").ZodType<CheckpointPaddingRollupPrivateInputs, any, string>;
99
110
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb290X3JvbGx1cF9wcml2YXRlX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3Jvb3Rfcm9sbHVwX3ByaXZhdGVfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUssRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQWEsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxxQkFBYSx5QkFBeUI7SUFLM0IsbUJBQW1CLEVBQUUsV0FBVztJQUloQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sY0FBYyxDQUFDO0lBSTVELG9CQUFvQixFQUFFLGVBQWU7SUFJckMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBTWhELFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFJaEIsZUFBZSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxvQkFBb0IsQ0FBQztJQUsvRCxTQUFTLEVBQUUsRUFBRTtJQS9CdEI7SUFDRTs7T0FFRztJQUNJLG1CQUFtQixFQUFFLFdBQVc7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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb290X3JvbGx1cF9wcml2YXRlX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3Jvb3Rfcm9sbHVwX3ByaXZhdGVfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUssRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQWEsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxxQkFBYSx5QkFBeUI7SUFLM0IsbUJBQW1CLEVBQUUsV0FBVztJQUloQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sY0FBYyxDQUFDO0lBSTVELGVBQWUsRUFBRSxzQkFBc0I7SUFJdkMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLG9CQUFvQixDQUFDO0lBSTdELG9CQUFvQixFQUFFLGVBQWU7SUFJckMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBTWhE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
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_root_rollup_private_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_root_rollup_private_inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint_root_rollup_private_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_root_rollup_private_inputs.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
1
  import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
- import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, OUT_HASH_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { BLS12Point } from '@aztec/foundation/curves/bls12';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
6
6
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
7
7
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
8
8
  import { ProofData } from '../proofs/proof_data.js';
9
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
9
10
  import { BlockHeader } from '../tx/block_header.js';
10
11
  import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
11
12
  export class CheckpointRootRollupHints {
12
13
  previousBlockHeader;
13
14
  previousArchiveSiblingPath;
15
+ previousOutHash;
16
+ newOutHashSiblingPath;
14
17
  startBlobAccumulator;
15
18
  finalBlobChallenges;
16
19
  blobFields;
@@ -21,6 +24,10 @@ export class CheckpointRootRollupHints {
21
24
  */ previousBlockHeader, /**
22
25
  * Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
23
26
  */ previousArchiveSiblingPath, /**
27
+ * The out hash tree snapshot immediately before this checkpoint.
28
+ */ previousOutHash, /**
29
+ * Hint for inserting the new out hash into the out hash tree.
30
+ */ newOutHashSiblingPath, /**
24
31
  * The current blob accumulation state across the epoch.
25
32
  */ startBlobAccumulator, /**
26
33
  * Finalized challenges z and gamma for performing blob batching. Shared value across the epoch.
@@ -36,6 +43,8 @@ export class CheckpointRootRollupHints {
36
43
  */ blobsHash){
37
44
  this.previousBlockHeader = previousBlockHeader;
38
45
  this.previousArchiveSiblingPath = previousArchiveSiblingPath;
46
+ this.previousOutHash = previousOutHash;
47
+ this.newOutHashSiblingPath = newOutHashSiblingPath;
39
48
  this.startBlobAccumulator = startBlobAccumulator;
40
49
  this.finalBlobChallenges = finalBlobChallenges;
41
50
  this.blobFields = blobFields;
@@ -49,6 +58,8 @@ export class CheckpointRootRollupHints {
49
58
  return [
50
59
  fields.previousBlockHeader,
51
60
  fields.previousArchiveSiblingPath,
61
+ fields.previousOutHash,
62
+ fields.newOutHashSiblingPath,
52
63
  fields.startBlobAccumulator,
53
64
  fields.finalBlobChallenges,
54
65
  fields.blobFields,
@@ -61,7 +72,7 @@ export class CheckpointRootRollupHints {
61
72
  }
62
73
  static fromBuffer(buffer) {
63
74
  const reader = BufferReader.asReader(buffer);
64
- return new CheckpointRootRollupHints(BlockHeader.fromBuffer(reader), reader.readArray(ARCHIVE_HEIGHT, Fr), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges), // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
75
+ return new CheckpointRootRollupHints(BlockHeader.fromBuffer(reader), reader.readArray(ARCHIVE_HEIGHT, Fr), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(OUT_HASH_TREE_HEIGHT, Fr), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges), // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
65
76
  // reader.readArray(FIELDS_PER_BLOB, Fr),
66
77
  Array.from({
67
78
  length: FIELDS_PER_BLOB * BLOBS_PER_CHECKPOINT
@@ -23,7 +23,10 @@ export declare class RootRollupPublicInputs {
23
23
  previousArchiveRoot: Fr,
24
24
  /** Root of the archive tree after this rollup is processed */
25
25
  endArchiveRoot: Fr,
26
- /** Root of the unbalanced merkle tree consisting of the `out_hash` values from all checkpoints in this rollup. */
26
+ /**
27
+ * Root of the balanced merkle tree consisting of the out hashes of all checkpoints in this epoch.
28
+ * The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on.
29
+ */
27
30
  outHash: Fr,
28
31
  /** Hashes of checkpoint headers for this rollup. */
29
32
  checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>, fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>, constants: EpochConstantData, blobPublicInputs: FinalBlobAccumulator);
@@ -46,4 +49,4 @@ export declare class RootRollupPublicInputs {
46
49
  /** Creates a random instance. Used for testing only - will not prove/verify. */
47
50
  static random(): RootRollupPublicInputs;
48
51
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb290X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTdHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7OztHQUlHO0FBQ0gscUJBQWEsc0JBQXNCO0lBR3hCLG1CQUFtQixFQUFFLEVBQUU7SUFFdkIsY0FBYyxFQUFFLEVBQUU7SUFFbEIsT0FBTyxFQUFFLEVBQUU7SUFFWCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDbEUsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUMxRCxTQUFTLEVBQUUsaUJBQWlCO0lBQzVCLGdCQUFnQixFQUFFLG9CQUFvQjtJQVgvQztJQUNFLCtEQUErRDtJQUN4RCxtQkFBbUIsRUFBRSxFQUFFO0lBQzlCLDhEQUE4RDtJQUN2RCxjQUFjLEVBQUUsRUFBRTtJQUN6QixrSEFBa0g7SUFDM0csT0FBTyxFQUFFLEVBQUU7SUFDbEIsb0RBQW9EO0lBQzdDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQyxFQUNsRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLHdCQUF3QixDQUFDLEVBQzFELFNBQVMsRUFBRSxpQkFBaUIsRUFDNUIsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQzNDO0lBRUosTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLHNCQUFzQixDQUFDLHM2QkFVeEQ7SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsc0JBQXNCLENBRTVFO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHNCQUFzQixDQVc5RTtJQUVELFFBQVEsa0JBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLDBCQUU1QjtJQUVELHVEQUF1RDtJQUN2RCxNQUFNLDRCQUVMO0lBRUQseUNBQXlDO0lBQ3pDLE1BQU0sS0FBSyxNQUFNLCtEQUVoQjtJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsTUFBTSwyQkFVWjtDQUNGIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb290X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTdHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7OztHQUlHO0FBQ0gscUJBQWEsc0JBQXNCO0lBR3hCLG1CQUFtQixFQUFFLEVBQUU7SUFFdkIsY0FBYyxFQUFFLEVBQUU7SUFLbEIsT0FBTyxFQUFFLEVBQUU7SUFFWCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDbEUsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUMxRCxTQUFTLEVBQUUsaUJBQWlCO0lBQzVCLGdCQUFnQixFQUFFLG9CQUFvQjtJQWQvQztJQUNFLCtEQUErRDtJQUN4RCxtQkFBbUIsRUFBRSxFQUFFO0lBQzlCLDhEQUE4RDtJQUN2RCxjQUFjLEVBQUUsRUFBRTtJQUN6Qjs7O09BR0c7SUFDSSxPQUFPLEVBQUUsRUFBRTtJQUNsQixvREFBb0Q7SUFDN0Msc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDLEVBQ2xFLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUMsRUFDMUQsU0FBUyxFQUFFLGlCQUFpQixFQUM1QixnQkFBZ0IsRUFBRSxvQkFBb0IsRUFDM0M7SUFFSixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsczZCQVV4RDtJQUVELFFBQVEsNEJBRVA7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxzQkFBc0IsQ0FFNUU7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsc0JBQXNCLENBVzlFO0lBRUQsUUFBUSxrQkFFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sMEJBRTVCO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sNEJBRUw7SUFFRCx5Q0FBeUM7SUFDekMsTUFBTSxLQUFLLE1BQU0sK0RBRWhCO0lBRUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sQ0FBQyxNQUFNLDJCQVVaO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"root_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/root_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,sBAAsB;IAGxB,mBAAmB,EAAE,EAAE;IAEvB,cAAc,EAAE,EAAE;IAElB,OAAO,EAAE,EAAE;IAEX,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAC1D,SAAS,EAAE,iBAAiB;IAC5B,gBAAgB,EAAE,oBAAoB;IAX/C;IACE,+DAA+D;IACxD,mBAAmB,EAAE,EAAE;IAC9B,8DAA8D;IACvD,cAAc,EAAE,EAAE;IACzB,kHAAkH;IAC3G,OAAO,EAAE,EAAE;IAClB,oDAAoD;IAC7C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC,EAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,EAC1D,SAAS,EAAE,iBAAiB,EAC5B,gBAAgB,EAAE,oBAAoB,EAC3C;IAEJ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,s6BAUxD;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAE5E;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAW9E;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,0BAE5B;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED,yCAAyC;IACzC,MAAM,KAAK,MAAM,+DAEhB;IAED,gFAAgF;IAChF,MAAM,CAAC,MAAM,2BAUZ;CACF"}
1
+ {"version":3,"file":"root_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/root_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,sBAAsB;IAGxB,mBAAmB,EAAE,EAAE;IAEvB,cAAc,EAAE,EAAE;IAKlB,OAAO,EAAE,EAAE;IAEX,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAC1D,SAAS,EAAE,iBAAiB;IAC5B,gBAAgB,EAAE,oBAAoB;IAd/C;IACE,+DAA+D;IACxD,mBAAmB,EAAE,EAAE;IAC9B,8DAA8D;IACvD,cAAc,EAAE,EAAE;IACzB;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB,oDAAoD;IAC7C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC,EAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,EAC1D,SAAS,EAAE,iBAAiB,EAC5B,gBAAgB,EAAE,oBAAoB,EAC3C;IAEJ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,s6BAUxD;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAE5E;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAW9E;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,0BAE5B;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED,yCAAyC;IACzC,MAAM,KAAK,MAAM,+DAEhB;IAED,gFAAgF;IAChF,MAAM,CAAC,MAAM,2BAUZ;CACF"}
@@ -19,7 +19,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
19
19
  fees;
20
20
  constants;
21
21
  blobPublicInputs;
22
- constructor(/** Root of the archive tree before this rollup is processed */ previousArchiveRoot, /** Root of the archive tree after this rollup is processed */ endArchiveRoot, /** Root of the unbalanced merkle tree consisting of the `out_hash` values from all checkpoints in this rollup. */ outHash, /** Hashes of checkpoint headers for this rollup. */ checkpointHeaderHashes, fees, constants, blobPublicInputs){
22
+ constructor(/** Root of the archive tree before this rollup is processed */ previousArchiveRoot, /** Root of the archive tree after this rollup is processed */ endArchiveRoot, /**
23
+ * Root of the balanced merkle tree consisting of the out hashes of all checkpoints in this epoch.
24
+ * The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on.
25
+ */ outHash, /** Hashes of checkpoint headers for this rollup. */ checkpointHeaderHashes, fees, constants, blobPublicInputs){
23
26
  this.previousArchiveRoot = previousArchiveRoot;
24
27
  this.endArchiveRoot = endArchiveRoot;
25
28
  this.outHash = outHash;
@@ -1,4 +1,5 @@
1
1
  import { type FieldsOf } from '@aztec/foundation/array';
2
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
3
  import { SchnorrSignature } from '@aztec/foundation/crypto/schnorr';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
4
5
  import { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
@@ -13,6 +14,7 @@ import { PublicDataRead } from '../avm/public_data_read.js';
13
14
  import { PublicDataWrite } from '../avm/public_data_write.js';
14
15
  import { AztecAddress } from '../aztec-address/index.js';
15
16
  import { L2BlockHeader } from '../block/l2_block_header.js';
17
+ import type { L2Tips } from '../block/l2_block_source.js';
16
18
  import { type ContractClassPublic, ContractDeploymentData, type ContractInstanceWithAddress, type ExecutablePrivateFunctionWithMembershipProof, type UtilityFunctionWithMembershipProof } from '../contract/index.js';
17
19
  import { Gas, GasSettings } from '../gas/index.js';
18
20
  import { PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PrivateToPublicKernelCircuitPublicInputs, PrivateToRollupAccumulatedData } from '../kernel/index.js';
@@ -395,4 +397,14 @@ export declare function randomTxScopedPublicL2Log(opts?: {
395
397
  noteHashes?: Fr[];
396
398
  firstNullifier?: Fr;
397
399
  }): Promise<TxScopedL2Log>;
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUtuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQU0sRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFHTCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUVoQix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLGlDQUFpQyxFQUNqQyxpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLFNBQVMsRUFDVixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxj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
400
+ /**
401
+ * Creates L2Tips with all tips pointing to the same block number.
402
+ * Useful for mocking aztecNode.getL2Tips() in tests.
403
+ * @param blockNumber - The block number to use for all tips.
404
+ * @param hash - Optional hash for the block (defaults to empty string).
405
+ * @param checkpointNumber - Optional checkpoint number (defaults to blockNumber).
406
+ * @param checkpointHash - Optional checkpoint hash (defaults to block hash).
407
+ * @returns L2Tips object with all tips at the same block.
408
+ */
409
+ export declare function makeL2Tips(blockNumber: number | BlockNumber, hash?: string, checkpointNumber?: number | CheckpointNumber, checkpointHash?: string): L2Tips;
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFNLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHFD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