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

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 (237) hide show
  1. package/dest/abi/function_call.d.ts +39 -9
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/function_call.js +20 -3
  4. package/dest/block/block_hash.d.ts +16 -19
  5. package/dest/block/block_hash.d.ts.map +1 -1
  6. package/dest/block/block_hash.js +21 -34
  7. package/dest/block/block_parameter.d.ts +4 -4
  8. package/dest/block/block_parameter.d.ts.map +1 -1
  9. package/dest/block/block_parameter.js +2 -2
  10. package/dest/block/in_block.d.ts +9 -9
  11. package/dest/block/in_block.d.ts.map +1 -1
  12. package/dest/block/in_block.js +5 -5
  13. package/dest/block/l2_block.d.ts +3 -2
  14. package/dest/block/l2_block.d.ts.map +1 -1
  15. package/dest/block/l2_block.js +2 -3
  16. package/dest/block/l2_block_source.d.ts +5 -4
  17. package/dest/block/l2_block_source.d.ts.map +1 -1
  18. package/dest/checkpoint/checkpoint.d.ts +16 -7
  19. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  20. package/dest/checkpoint/checkpoint.js +19 -9
  21. package/dest/checkpoint/published_checkpoint.d.ts +7 -1
  22. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  23. package/dest/config/index.d.ts +2 -1
  24. package/dest/config/index.d.ts.map +1 -1
  25. package/dest/config/index.js +1 -0
  26. package/dest/config/sequencer-config.d.ts +10 -0
  27. package/dest/config/sequencer-config.d.ts.map +1 -0
  28. package/dest/config/sequencer-config.js +12 -0
  29. package/dest/contract/contract_address.js +1 -1
  30. package/dest/contract/contract_class_id.d.ts +2 -2
  31. package/dest/contract/contract_class_id.d.ts.map +1 -1
  32. package/dest/contract/contract_class_id.js +4 -3
  33. package/dest/contract/interfaces/node-info.d.ts +3 -1
  34. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  35. package/dest/contract/interfaces/node-info.js +2 -1
  36. package/dest/contract/private_function.js +1 -1
  37. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  38. package/dest/contract/private_function_membership_proof.js +1 -1
  39. package/dest/database-version/database_version.d.ts +58 -0
  40. package/dest/database-version/database_version.d.ts.map +1 -0
  41. package/dest/database-version/database_version.js +69 -0
  42. package/dest/database-version/version_manager.d.ts +2 -50
  43. package/dest/database-version/version_manager.d.ts.map +1 -1
  44. package/dest/database-version/version_manager.js +1 -66
  45. package/dest/epoch-helpers/index.d.ts +7 -1
  46. package/dest/epoch-helpers/index.d.ts.map +1 -1
  47. package/dest/epoch-helpers/index.js +8 -2
  48. package/dest/hash/hash.d.ts +2 -1
  49. package/dest/hash/hash.d.ts.map +1 -1
  50. package/dest/hash/hash.js +8 -2
  51. package/dest/hash/map_slot.d.ts +1 -1
  52. package/dest/hash/map_slot.d.ts.map +1 -1
  53. package/dest/hash/map_slot.js +4 -3
  54. package/dest/interfaces/archiver.d.ts +1 -1
  55. package/dest/interfaces/archiver.d.ts.map +1 -1
  56. package/dest/interfaces/archiver.js +4 -3
  57. package/dest/interfaces/aztec-node-admin.d.ts +17 -2
  58. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  59. package/dest/interfaces/aztec-node-admin.js +3 -1
  60. package/dest/interfaces/aztec-node.d.ts +33 -54
  61. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  62. package/dest/interfaces/aztec-node.js +6 -10
  63. package/dest/interfaces/block-builder.d.ts +10 -4
  64. package/dest/interfaces/block-builder.d.ts.map +1 -1
  65. package/dest/interfaces/block-builder.js +7 -0
  66. package/dest/interfaces/get_logs_response.d.ts +15 -8
  67. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  68. package/dest/interfaces/p2p.d.ts +2 -2
  69. package/dest/interfaces/p2p.d.ts.map +1 -1
  70. package/dest/interfaces/prover-broker.d.ts +16 -1
  71. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  72. package/dest/interfaces/prover-broker.js +4 -1
  73. package/dest/interfaces/prover-client.d.ts +6 -1
  74. package/dest/interfaces/prover-client.d.ts.map +1 -1
  75. package/dest/interfaces/prover-client.js +5 -0
  76. package/dest/interfaces/proving-job.d.ts +202 -202
  77. package/dest/interfaces/slasher.d.ts +9 -1
  78. package/dest/interfaces/slasher.d.ts.map +1 -1
  79. package/dest/interfaces/slasher.js +2 -0
  80. package/dest/interfaces/validator.d.ts +50 -4
  81. package/dest/interfaces/validator.d.ts.map +1 -1
  82. package/dest/interfaces/validator.js +4 -1
  83. package/dest/keys/derivation.d.ts +3 -3
  84. package/dest/keys/derivation.js +8 -8
  85. package/dest/keys/key_types.d.ts +1 -1
  86. package/dest/keys/utils.d.ts +1 -1
  87. package/dest/keys/utils.d.ts.map +1 -1
  88. package/dest/keys/utils.js +7 -3
  89. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  90. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  91. package/dest/l1-contracts/slash_factory.js +1 -0
  92. package/dest/logs/extended_public_log.d.ts +13 -7
  93. package/dest/logs/extended_public_log.d.ts.map +1 -1
  94. package/dest/logs/log_id.d.ts +17 -14
  95. package/dest/logs/log_id.d.ts.map +1 -1
  96. package/dest/logs/log_id.js +20 -17
  97. package/dest/logs/siloed_tag.d.ts +1 -1
  98. package/dest/logs/siloed_tag.d.ts.map +1 -1
  99. package/dest/logs/siloed_tag.js +2 -5
  100. package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
  101. package/dest/messaging/l2_to_l1_membership.js +3 -3
  102. package/dest/note/index.d.ts +1 -2
  103. package/dest/note/index.d.ts.map +1 -1
  104. package/dest/note/index.js +0 -1
  105. package/dest/p2p/block_proposal.d.ts +10 -3
  106. package/dest/p2p/block_proposal.d.ts.map +1 -1
  107. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  108. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  109. package/dest/p2p/checkpoint_attestation.js +1 -1
  110. package/dest/p2p/checkpoint_proposal.d.ts +26 -7
  111. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  112. package/dest/p2p/checkpoint_proposal.js +29 -15
  113. package/dest/p2p/consensus_payload.d.ts +12 -3
  114. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  115. package/dest/p2p/consensus_payload.js +22 -15
  116. package/dest/p2p/constants.d.ts +3 -1
  117. package/dest/p2p/constants.d.ts.map +1 -1
  118. package/dest/p2p/constants.js +1 -0
  119. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  120. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  121. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  122. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  123. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  124. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  125. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  126. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  127. package/dest/slashing/empire.d.ts +1 -1
  128. package/dest/slashing/empire.d.ts.map +1 -1
  129. package/dest/slashing/empire.js +2 -0
  130. package/dest/slashing/helpers.d.ts +2 -2
  131. package/dest/slashing/helpers.d.ts.map +1 -1
  132. package/dest/slashing/helpers.js +6 -0
  133. package/dest/slashing/tally.d.ts +2 -1
  134. package/dest/slashing/tally.d.ts.map +1 -1
  135. package/dest/slashing/tally.js +6 -2
  136. package/dest/slashing/types.d.ts +7 -3
  137. package/dest/slashing/types.d.ts.map +1 -1
  138. package/dest/slashing/types.js +13 -1
  139. package/dest/stats/stats.d.ts +1 -3
  140. package/dest/stats/stats.d.ts.map +1 -1
  141. package/dest/tests/factories.js +3 -3
  142. package/dest/tests/mocks.d.ts +9 -2
  143. package/dest/tests/mocks.d.ts.map +1 -1
  144. package/dest/tests/mocks.js +15 -9
  145. package/dest/timetable/index.d.ts +37 -0
  146. package/dest/timetable/index.d.ts.map +1 -0
  147. package/dest/timetable/index.js +39 -0
  148. package/dest/trees/public_data_leaf.d.ts +2 -1
  149. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  150. package/dest/trees/public_data_leaf.js +7 -6
  151. package/dest/tx/block_header.d.ts +3 -3
  152. package/dest/tx/block_header.d.ts.map +1 -1
  153. package/dest/tx/block_header.js +3 -3
  154. package/dest/tx/in_tx.d.ts +3 -3
  155. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  156. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  157. package/dest/tx/indexed_tx_effect.js +3 -2
  158. package/dest/tx/tx_receipt.d.ts +5 -5
  159. package/dest/tx/tx_receipt.d.ts.map +1 -1
  160. package/dest/tx/tx_receipt.js +2 -2
  161. package/dest/tx/validator/empty_validator.d.ts +2 -2
  162. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  163. package/dest/tx/validator/tx_validator.d.ts +2 -2
  164. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  165. package/dest/validators/schemas.d.ts +30 -30
  166. package/dest/validators/schemas.d.ts.map +1 -1
  167. package/dest/validators/schemas.js +4 -3
  168. package/dest/validators/types.d.ts +3 -3
  169. package/dest/validators/types.d.ts.map +1 -1
  170. package/package.json +24 -12
  171. package/src/abi/function_call.ts +25 -3
  172. package/src/block/block_hash.ts +25 -50
  173. package/src/block/block_parameter.ts +3 -3
  174. package/src/block/in_block.ts +6 -6
  175. package/src/block/l2_block.ts +3 -3
  176. package/src/block/l2_block_source.ts +4 -3
  177. package/src/checkpoint/checkpoint.ts +27 -11
  178. package/src/config/index.ts +1 -0
  179. package/src/config/sequencer-config.ts +19 -0
  180. package/src/contract/contract_address.ts +1 -1
  181. package/src/contract/contract_class_id.ts +4 -3
  182. package/src/contract/interfaces/node-info.ts +3 -0
  183. package/src/contract/private_function.ts +1 -1
  184. package/src/contract/private_function_membership_proof.ts +1 -1
  185. package/src/database-version/database_version.ts +87 -0
  186. package/src/database-version/version_manager.ts +1 -77
  187. package/src/epoch-helpers/index.ts +12 -0
  188. package/src/hash/hash.ts +6 -2
  189. package/src/hash/map_slot.ts +3 -2
  190. package/src/interfaces/archiver.ts +4 -3
  191. package/src/interfaces/aztec-node-admin.ts +3 -2
  192. package/src/interfaces/aztec-node.ts +42 -93
  193. package/src/interfaces/block-builder.ts +13 -2
  194. package/src/interfaces/p2p.ts +1 -1
  195. package/src/interfaces/prover-broker.ts +22 -0
  196. package/src/interfaces/prover-client.ts +7 -0
  197. package/src/interfaces/slasher.ts +4 -0
  198. package/src/interfaces/validator.ts +12 -3
  199. package/src/keys/derivation.ts +8 -8
  200. package/src/keys/key_types.ts +1 -1
  201. package/src/keys/utils.ts +7 -3
  202. package/src/l1-contracts/slash_factory.ts +1 -0
  203. package/src/logs/log_id.ts +22 -18
  204. package/src/logs/siloed_tag.ts +2 -2
  205. package/src/messaging/l2_to_l1_membership.ts +3 -3
  206. package/src/note/index.ts +0 -1
  207. package/src/p2p/block_proposal.ts +9 -2
  208. package/src/p2p/checkpoint_attestation.ts +6 -1
  209. package/src/p2p/checkpoint_proposal.ts +54 -15
  210. package/src/p2p/consensus_payload.ts +25 -12
  211. package/src/p2p/constants.ts +3 -0
  212. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  213. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  214. package/src/slashing/empire.ts +3 -1
  215. package/src/slashing/helpers.ts +8 -0
  216. package/src/slashing/tally.ts +8 -2
  217. package/src/slashing/types.ts +14 -0
  218. package/src/stats/stats.ts +0 -2
  219. package/src/tests/factories.ts +5 -5
  220. package/src/tests/mocks.ts +24 -11
  221. package/src/timetable/index.ts +66 -0
  222. package/src/trees/public_data_leaf.ts +11 -5
  223. package/src/tx/block_header.ts +6 -6
  224. package/src/tx/indexed_tx_effect.ts +3 -2
  225. package/src/tx/tx_receipt.ts +4 -4
  226. package/src/tx/validator/empty_validator.ts +1 -1
  227. package/src/tx/validator/tx_validator.ts +1 -1
  228. package/src/validators/schemas.ts +8 -1
  229. package/src/validators/types.ts +5 -4
  230. package/dest/database-version/index.d.ts +0 -2
  231. package/dest/database-version/index.d.ts.map +0 -1
  232. package/dest/database-version/index.js +0 -1
  233. package/dest/note/notes_filter.d.ts +0 -27
  234. package/dest/note/notes_filter.d.ts.map +0 -1
  235. package/dest/note/notes_filter.js +0 -11
  236. package/src/database-version/index.ts +0 -1
  237. package/src/note/notes_filter.ts +0 -38
@@ -17,6 +17,8 @@ export declare class Checkpoint {
17
17
  blocks: L2Block[];
18
18
  /** Number of the checkpoint. */
19
19
  number: CheckpointNumber;
20
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
21
+ feeAssetPriceModifier: bigint;
20
22
  constructor(
21
23
  /** Snapshot of archive tree after the checkpoint is added. */
22
24
  archive: AppendOnlyTreeSnapshot,
@@ -25,7 +27,9 @@ export declare class Checkpoint {
25
27
  /** L2 blocks in the checkpoint. */
26
28
  blocks: L2Block[],
27
29
  /** Number of the checkpoint. */
28
- number: CheckpointNumber);
30
+ number: CheckpointNumber,
31
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
32
+ feeAssetPriceModifier?: bigint);
29
33
  get slot(): SlotNumber;
30
34
  static get schema(): z.ZodEffects<z.ZodObject<{
31
35
  archive: z.ZodEffects<z.ZodObject<{
@@ -41,7 +45,7 @@ export declare class Checkpoint {
41
45
  root: string;
42
46
  nextAvailableLeafIndex: string | number | bigint;
43
47
  }>;
44
- header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
48
+ header: import("../schemas/schemas.js").ZodFor<CheckpointHeader>;
45
49
  blocks: z.ZodArray<z.ZodEffects<z.ZodObject<{
46
50
  archive: z.ZodEffects<z.ZodObject<{
47
51
  root: z.ZodType<Fr, any, string>;
@@ -56,8 +60,8 @@ export declare class Checkpoint {
56
60
  root: string;
57
61
  nextAvailableLeafIndex: string | number | bigint;
58
62
  }>;
59
- header: import("@aztec/foundation/schemas").ZodFor<import("../tx/block_header.js").BlockHeader>;
60
- body: import("@aztec/foundation/schemas").ZodFor<import("../block/body.js").Body>;
63
+ header: import("../schemas/schemas.js").ZodFor<import("../tx/block_header.js").BlockHeader>;
64
+ body: import("../schemas/schemas.js").ZodFor<import("../block/body.js").Body>;
61
65
  checkpointNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
62
66
  indexWithinCheckpoint: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, IndexWithinCheckpoint, string | number | bigint>;
63
67
  }, "strip", z.ZodTypeAny, {
@@ -90,6 +94,7 @@ export declare class Checkpoint {
90
94
  indexWithinCheckpoint: string | number | bigint;
91
95
  }>, "many">;
92
96
  number: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
97
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
93
98
  }, "strip", z.ZodTypeAny, {
94
99
  archive: AppendOnlyTreeSnapshot;
95
100
  header: CheckpointHeader;
@@ -97,6 +102,7 @@ export declare class Checkpoint {
97
102
  number: number & {
98
103
  _branding: "CheckpointNumber";
99
104
  };
105
+ feeAssetPriceModifier: bigint;
100
106
  }, {
101
107
  archive: {
102
108
  root: string;
@@ -114,6 +120,7 @@ export declare class Checkpoint {
114
120
  indexWithinCheckpoint: string | number | bigint;
115
121
  }[];
116
122
  number: string | number | bigint;
123
+ feeAssetPriceModifier: string | number | bigint;
117
124
  }>, Checkpoint, {
118
125
  archive: {
119
126
  root: string;
@@ -131,9 +138,10 @@ export declare class Checkpoint {
131
138
  indexWithinCheckpoint: string | number | bigint;
132
139
  }[];
133
140
  number: string | number | bigint;
141
+ feeAssetPriceModifier: string | number | bigint;
134
142
  }>;
135
143
  static from(fields: FieldsOfCheckpoint): Checkpoint;
136
- static getFields(fields: FieldsOfCheckpoint): readonly [AppendOnlyTreeSnapshot, CheckpointHeader, L2Block[], CheckpointNumber];
144
+ static getFields(fields: FieldsOfCheckpoint): readonly [AppendOnlyTreeSnapshot, CheckpointHeader, L2Block[], CheckpointNumber, bigint];
137
145
  static fromBuffer(buf: Buffer | BufferReader): Checkpoint;
138
146
  toBuffer(): Buffer<ArrayBufferLike>;
139
147
  toBlobFields(): Fr[];
@@ -153,11 +161,12 @@ export declare class Checkpoint {
153
161
  checkpointNumber: CheckpointNumber;
154
162
  timestamp: bigint;
155
163
  };
156
- static random(checkpointNumber?: CheckpointNumber, { numBlocks, startBlockNumber, previousArchive, ...options }?: {
164
+ static random(checkpointNumber?: CheckpointNumber, { numBlocks, startBlockNumber, previousArchive, feeAssetPriceModifier, ...options }?: {
157
165
  numBlocks?: number;
158
166
  startBlockNumber?: number;
159
167
  previousArchive?: AppendOnlyTreeSnapshot;
168
+ feeAssetPriceModifier?: bigint;
160
169
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> & Partial<Parameters<typeof L2Block.random>[1]>): Promise<Checkpoint>;
161
170
  }
162
171
  export {};
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQVJqQztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCLEVBQzdCO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVNoQjtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGtCQUFrQixjQUVyQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLGtCQUFrQixvRkFFMUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxjQVEzQztJQUVNLFFBQVEsNEJBRWQ7SUFFTSxZQUFZLElBQUksRUFBRSxFQUFFLENBRzFCO0lBRU0sSUFBSSxJQUFJLEVBQUUsQ0FFaEI7SUFLTSxvQkFBb0IsSUFBSSxFQUFFLENBR2hDO0lBRU0sUUFBUSxzREFFZDtJQUVNLGdCQUFnQixJQUFJLGNBQWMsQ0FReEM7SUFFRCxxQ0FBcUM7SUFDOUIsUUFBUTs7Ozs7Ozs7OztNQWtCZDtJQUVELE9BQWEsTUFBTSxDQUNqQixnQkFBZ0IsbUJBQXNCLEVBQ3RDLEVBQ0UsU0FBYSxFQUNiLGdCQUFvQixFQUNwQixlQUFlLEVBQ2YsR0FBRyxPQUFPLEVBQ1gsR0FBRTtRQUNELFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMxQixlQUFlLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztLQUMxQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFNLHVCQW1CckQ7Q0FDRiJ9
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQix5RkFBeUY7SUFDbEYscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLHlGQUF5RjtJQUNsRixxQkFBcUIsR0FBRSxNQUFXLEVBQ3ZDO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsY0FFckM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsNEZBRTFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksY0FRM0M7SUFFTSxRQUFRLDRCQVNkO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLElBQUksSUFBSSxFQUFFLENBRWhCO0lBS00sb0JBQW9CLElBQUksRUFBRSxDQUdoQztJQUVNLFFBQVEsc0RBRWQ7SUFFTSxnQkFBZ0IsSUFBSSxjQUFjLENBUXhDO0lBRUQscUNBQXFDO0lBQzlCLFFBQVE7Ozs7Ozs7Ozs7TUFrQmQ7SUFFRCxPQUFhLE1BQU0sQ0FDakIsZ0JBQWdCLG1CQUFzQixFQUN0QyxFQUNFLFNBQWEsRUFDYixnQkFBb0IsRUFDcEIsZUFBZSxFQUNmLHFCQUEwQixFQUMxQixHQUFHLE9BQU8sRUFDWCxHQUFFO1FBQ0QsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ25CLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQzFCLGVBQWUsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO1FBQ3pDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ2hDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQ3hELE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQU0sdUJBbUJyRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IARjC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB,EAC7B;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,oFAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BAEd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAKM,oBAAoB,IAAI,EAAE,CAGhC;IAEM,QAAQ,sDAEd;IAEM,gBAAgB,IAAI,cAAc,CAQxC;IAED,qCAAqC;IAC9B,QAAQ;;;;;;;;;;MAkBd;IAED,OAAa,MAAM,CACjB,gBAAgB,mBAAsB,EACtC,EACE,SAAa,EACb,gBAAoB,EACpB,eAAe,EACf,GAAG,OAAO,EACX,GAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;KAC1C,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,uBAmBrD;CACF"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,EAAE,MAAM;IAVtC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,GAAE,MAAW,EACvC;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,4FAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BASd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAKM,oBAAoB,IAAI,EAAE,CAGhC;IAEM,QAAQ,sDAEd;IAEM,gBAAgB,IAAI,cAAc,CAQxC;IAED,qCAAqC;IAC9B,QAAQ;;;;;;;;;;MAkBd;IAED,OAAa,MAAM,CACjB,gBAAgB,mBAAsB,EACtC,EACE,SAAa,EACb,gBAAoB,EACpB,eAAe,EACf,qBAA0B,EAC1B,GAAG,OAAO,EACX,GAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,uBAmBrD;CACF"}
@@ -1,23 +1,26 @@
1
1
  import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
2
  import { BlockNumber, CheckpointNumber, CheckpointNumberSchema, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
3
  import { sum } from '@aztec/foundation/collection';
4
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { z } from 'zod';
6
6
  import { L2Block } from '../block/l2_block.js';
7
7
  import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
8
8
  import { computeCheckpointOutHash } from '../messaging/out_hash.js';
9
9
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
10
+ import { schemas } from '../schemas/schemas.js';
10
11
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
12
  export class Checkpoint {
12
13
  archive;
13
14
  header;
14
15
  blocks;
15
16
  number;
16
- constructor(/** Snapshot of archive tree after the checkpoint is added. */ archive, /** Header of the checkpoint. */ header, /** L2 blocks in the checkpoint. */ blocks, /** Number of the checkpoint. */ number){
17
+ feeAssetPriceModifier;
18
+ constructor(/** Snapshot of archive tree after the checkpoint is added. */ archive, /** Header of the checkpoint. */ header, /** L2 blocks in the checkpoint. */ blocks, /** Number of the checkpoint. */ number, /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */ feeAssetPriceModifier = 0n){
17
19
  this.archive = archive;
18
20
  this.header = header;
19
21
  this.blocks = blocks;
20
22
  this.number = number;
23
+ this.feeAssetPriceModifier = feeAssetPriceModifier;
21
24
  }
22
25
  get slot() {
23
26
  return this.header.slotNumber;
@@ -27,8 +30,9 @@ export class Checkpoint {
27
30
  archive: AppendOnlyTreeSnapshot.schema,
28
31
  header: CheckpointHeader.schema,
29
32
  blocks: z.array(L2Block.schema),
30
- number: CheckpointNumberSchema
31
- }).transform(({ archive, header, blocks, number })=>new Checkpoint(archive, header, blocks, number));
33
+ number: CheckpointNumberSchema,
34
+ feeAssetPriceModifier: schemas.BigInt
35
+ }).transform(({ archive, header, blocks, number, feeAssetPriceModifier })=>new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier));
32
36
  }
33
37
  static from(fields) {
34
38
  return new Checkpoint(...Checkpoint.getFields(fields));
@@ -38,15 +42,21 @@ export class Checkpoint {
38
42
  fields.archive,
39
43
  fields.header,
40
44
  fields.blocks,
41
- fields.number
45
+ fields.number,
46
+ fields.feeAssetPriceModifier
42
47
  ];
43
48
  }
44
49
  static fromBuffer(buf) {
45
50
  const reader = BufferReader.asReader(buf);
46
- return new Checkpoint(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(CheckpointHeader), reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT), CheckpointNumber(reader.readNumber()));
51
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
52
+ const header = reader.readObject(CheckpointHeader);
53
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
54
+ const number = CheckpointNumber(reader.readNumber());
55
+ const feeAssetPriceModifier = reader.readInt256();
56
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
47
57
  }
48
58
  toBuffer() {
49
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
59
+ return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number, serializeSignedBigInt(this.feeAssetPriceModifier));
50
60
  }
51
61
  toBlobFields() {
52
62
  const blocks = this.blocks.map((block)=>block.toBlockBlobData());
@@ -91,7 +101,7 @@ export class Checkpoint {
91
101
  ...logsStats
92
102
  };
93
103
  }
94
- static async random(checkpointNumber = CheckpointNumber(1), { numBlocks = 1, startBlockNumber = 1, previousArchive, ...options } = {}) {
104
+ static async random(checkpointNumber = CheckpointNumber(1), { numBlocks = 1, startBlockNumber = 1, previousArchive, feeAssetPriceModifier = 0n, ...options } = {}) {
95
105
  const header = CheckpointHeader.random(options);
96
106
  // Create blocks sequentially to chain archive roots properly.
97
107
  // Each block's header.lastArchive must equal the previous block's archive.
@@ -108,6 +118,6 @@ export class Checkpoint {
108
118
  lastArchive = block.archive;
109
119
  blocks.push(block);
110
120
  }
111
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
121
+ return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber, feeAssetPriceModifier);
112
122
  }
113
123
  }
@@ -99,6 +99,7 @@ export declare class PublishedCheckpoint {
99
99
  indexWithinCheckpoint: string | number | bigint;
100
100
  }>, "many">;
101
101
  number: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, import("@aztec/foundation/branded-types").CheckpointNumber, string | number | bigint>;
102
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
102
103
  }, "strip", z.ZodTypeAny, {
103
104
  archive: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
104
105
  header: import("../rollup/checkpoint_header.js").CheckpointHeader;
@@ -106,6 +107,7 @@ export declare class PublishedCheckpoint {
106
107
  number: number & {
107
108
  _branding: "CheckpointNumber";
108
109
  };
110
+ feeAssetPriceModifier: bigint;
109
111
  }, {
110
112
  archive: {
111
113
  root: string;
@@ -123,6 +125,7 @@ export declare class PublishedCheckpoint {
123
125
  indexWithinCheckpoint: string | number | bigint;
124
126
  }[];
125
127
  number: string | number | bigint;
128
+ feeAssetPriceModifier: string | number | bigint;
126
129
  }>, Checkpoint, {
127
130
  archive: {
128
131
  root: string;
@@ -140,6 +143,7 @@ export declare class PublishedCheckpoint {
140
143
  indexWithinCheckpoint: string | number | bigint;
141
144
  }[];
142
145
  number: string | number | bigint;
146
+ feeAssetPriceModifier: string | number | bigint;
143
147
  }>;
144
148
  l1: z.ZodEffects<z.ZodObject<{
145
149
  blockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
@@ -193,6 +197,7 @@ export declare class PublishedCheckpoint {
193
197
  indexWithinCheckpoint: string | number | bigint;
194
198
  }[];
195
199
  number: string | number | bigint;
200
+ feeAssetPriceModifier: string | number | bigint;
196
201
  };
197
202
  l1: {
198
203
  blockNumber: string | number | bigint;
@@ -221,6 +226,7 @@ export declare class PublishedCheckpoint {
221
226
  indexWithinCheckpoint: string | number | bigint;
222
227
  }[];
223
228
  number: string | number | bigint;
229
+ feeAssetPriceModifier: string | number | bigint;
224
230
  };
225
231
  l1: {
226
232
  blockNumber: string | number | bigint;
@@ -237,4 +243,4 @@ export declare class PublishedCheckpoint {
237
243
  static fromBuffer(bufferOrReader: Buffer | BufferReader): PublishedCheckpoint;
238
244
  toBuffer(): Buffer;
239
245
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3B1Ymxpc2hlZF9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MscUJBQWEsZUFBZTtJQUVqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixTQUFTLEVBQUUsTUFBTTtJQUgxQixZQUNTLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxNQUFNLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7T0FRaEI7SUFFRCxNQUFNLENBQUMsTUFBTSxvQkFNWjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsbUJBRWxEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBTXhFO0lBRU0sUUFBUSxJQUFJLE1BQU0sQ0FFeEI7Q0FDRjtBQUVELHFCQUFhLG1CQUFtQjtJQUVyQixVQUFVLEVBQUUsVUFBVTtJQUN0QixFQUFFLEVBQUUsZUFBZTtJQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUU7SUFKN0MsWUFDUyxVQUFVLEVBQUUsVUFBVSxFQUN0QixFQUFFLEVBQUUsZUFBZSxFQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFDekM7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrRUFFckQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBRWhEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxtQkFBbUIsQ0FZNUU7SUFFTSxRQUFRLElBQUksTUFBTSxDQVN4QjtDQUNGIn0=
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3B1Ymxpc2hlZF9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MscUJBQWEsZUFBZTtJQUVqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixTQUFTLEVBQUUsTUFBTTtJQUgxQixZQUNTLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxNQUFNLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7T0FRaEI7SUFFRCxNQUFNLENBQUMsTUFBTSxvQkFNWjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsbUJBRWxEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBTXhFO0lBRU0sUUFBUSxJQUFJLE1BQU0sQ0FFeEI7Q0FDRjtBQUVELHFCQUFhLG1CQUFtQjtJQUVyQixVQUFVLEVBQUUsVUFBVTtJQUN0QixFQUFFLEVBQUUsZUFBZTtJQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUU7SUFKN0MsWUFDUyxVQUFVLEVBQUUsVUFBVSxFQUN0QixFQUFFLEVBQUUsZUFBZSxFQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFDekM7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrRUFFckQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBRWhEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxtQkFBbUIsQ0FZNUU7SUFFTSxRQUFRLElBQUksTUFBTSxDQVN4QjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"published_checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/published_checkpoint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,eAAe;IAEjB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IAH1B,YACS,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,MAAM,oBAMZ;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,mBAElD;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAMxE;IAEM,QAAQ,IAAI,MAAM,CAExB;CACF;AAED,qBAAa,mBAAmB;IAErB,UAAU,EAAE,UAAU;IACtB,EAAE,EAAE,eAAe;IAEnB,YAAY,EAAE,oBAAoB,EAAE;IAJ7C,YACS,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,eAAe,EAEnB,YAAY,EAAE,oBAAoB,EAAE,EACzC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,kEAErD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,uBAEhD;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,mBAAmB,CAY5E;IAEM,QAAQ,IAAI,MAAM,CASxB;CACF"}
1
+ {"version":3,"file":"published_checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/published_checkpoint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,eAAe;IAEjB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IAH1B,YACS,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,MAAM,oBAMZ;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,mBAElD;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAMxE;IAEM,QAAQ,IAAI,MAAM,CAExB;CACF;AAED,qBAAa,mBAAmB;IAErB,UAAU,EAAE,UAAU;IACtB,EAAE,EAAE,eAAe;IAEnB,YAAY,EAAE,oBAAoB,EAAE;IAJ7C,YACS,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,eAAe,EAEnB,YAAY,EAAE,oBAAoB,EAAE,EACzC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,kEAErD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,uBAEhD;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,mBAAmB,CAY5E;IAEM,QAAQ,IAAI,MAAM,CASxB;CACF"}
@@ -1,3 +1,4 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDIn0=
3
+ export * from './sequencer-config.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
+ export * from './sequencer-config.js';
@@ -0,0 +1,10 @@
1
+ import type { ConfigMappingsType } from '@aztec/foundation/config';
2
+ import type { SequencerConfig } from '../interfaces/configs.js';
3
+ /**
4
+ * Partial sequencer config mappings for fields that need to be shared across packages.
5
+ * The full sequencer config mappings remain in sequencer-client, but shared fields
6
+ * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
7
+ * to avoid duplication.
8
+ */
9
+ export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs'>>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFDSCxlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQVF0RyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAQtG,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Partial sequencer config mappings for fields that need to be shared across packages.
3
+ * The full sequencer config mappings remain in sequencer-client, but shared fields
4
+ * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
5
+ * to avoid duplication.
6
+ */ export const sharedSequencerConfigMappings = {
7
+ blockDurationMs: {
8
+ env: 'SEQ_BLOCK_DURATION_MS',
9
+ description: 'Duration per block in milliseconds when building multiple blocks per slot. ' + 'If undefined (default), builds a single block per slot using the full slot duration.',
10
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
11
+ }
12
+ };
@@ -60,5 +60,5 @@ import { computeAddress } from '../keys/index.js';
60
60
  return poseidon2HashWithSeparator([
61
61
  initFn,
62
62
  argsHash
63
- ], GeneratorIndex.CONSTRUCTOR);
63
+ ], GeneratorIndex.INITIALIZER);
64
64
  }
@@ -5,7 +5,7 @@ import type { ContractClass } from './interfaces/contract_class.js';
5
5
  *
6
6
  * ```
7
7
  * version = 1
8
- * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__FUNCTION_LEAF))
8
+ * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF))
9
9
  * private_functions_root = merkleize(private_function_leaves)
10
10
  * bytecode_commitment = calculate_commitment(packed_bytecode)
11
11
  * contract_class_id = pedersen([version, artifact_hash, private_functions_root, bytecode_commitment], GENERATOR__CLASS_IDENTIFIER)
@@ -27,4 +27,4 @@ export type ContractClassIdPreimage = {
27
27
  publicBytecodeCommitment: Fr;
28
28
  };
29
29
  export declare function computePublicBytecodeCommitment(packedBytecode: Buffer): Promise<Fr>;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3NfaWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzc19pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFLcEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEU7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxhQUFhLEdBQUcsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUVoSDtBQUVELDJFQUEyRTtBQUMzRSx3QkFBc0Isa0NBQWtDLENBQ3RELGFBQWEsRUFBRSxhQUFhLEdBQUcsdUJBQXVCLEdBQ3JELE9BQU8sQ0FBQyx1QkFBdUIsR0FBRztJQUFFLEVBQUUsRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDLENBZS9DO0FBRUQsMEVBQTBFO0FBQzFFLHdCQUFzQiw4QkFBOEIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUluSDtBQUVELHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sdUJBQXVCLEdBQUc7SUFDcEMsWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUNqQixvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDekIsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO0NBQzlCLENBQUM7QUFFRix3QkFBc0IsK0JBQStCLENBQUMsY0FBYyxFQUFFLE1BQU0sZUFjM0UifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3NfaWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzc19pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFLcEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEU7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxhQUFhLEdBQUcsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUVoSDtBQUVELDJFQUEyRTtBQUMzRSx3QkFBc0Isa0NBQWtDLENBQ3RELGFBQWEsRUFBRSxhQUFhLEdBQUcsdUJBQXVCLEdBQ3JELE9BQU8sQ0FBQyx1QkFBdUIsR0FBRztJQUFFLEVBQUUsRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDLENBZS9DO0FBRUQsMEVBQTBFO0FBQzFFLHdCQUFzQiw4QkFBOEIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUluSDtBQUVELHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sdUJBQXVCLEdBQUc7SUFDcEMsWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUNqQixvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDekIsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO0NBQzlCLENBQUM7QUFFRix3QkFBc0IsK0JBQStCLENBQUMsY0FBYyxFQUFFLE1BQU0sZUFlM0UifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class_id.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class_id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAKpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,uBAAuB,GAAG,OAAO,CAAC,EAAE,CAAC,CAEhH;AAED,2EAA2E;AAC3E,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,aAAa,GAAG,uBAAuB,GACrD,OAAO,CAAC,uBAAuB,GAAG;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAe/C;AAED,0EAA0E;AAC1E,wBAAsB,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAInH;AAED,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE,CAAC;IACzB,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,cAAc,EAAE,MAAM,eAc3E"}
1
+ {"version":3,"file":"contract_class_id.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class_id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAKpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,uBAAuB,GAAG,OAAO,CAAC,EAAE,CAAC,CAEhH;AAED,2EAA2E;AAC3E,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,aAAa,GAAG,uBAAuB,GACrD,OAAO,CAAC,uBAAuB,GAAG;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAe/C;AAED,0EAA0E;AAC1E,wBAAsB,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAInH;AAED,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE,CAAC;IACzB,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,cAAc,EAAE,MAAM,eAe3E"}
@@ -9,7 +9,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
9
9
  *
10
10
  * ```
11
11
  * version = 1
12
- * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__FUNCTION_LEAF))
12
+ * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF))
13
13
  * private_functions_root = merkleize(private_function_leaves)
14
14
  * bytecode_commitment = calculate_commitment(packed_bytecode)
15
15
  * contract_class_id = pedersen([version, artifact_hash, private_functions_root, bytecode_commitment], GENERATOR__CLASS_IDENTIFIER)
@@ -45,12 +45,13 @@ import { computePrivateFunctionsRoot } from './private_function.js';
45
45
  };
46
46
  }
47
47
  export async function computePublicBytecodeCommitment(packedBytecode) {
48
- // Encode the buffer into field elements (chunked into 32 bytes each)
48
+ // Encode the buffer into field elements (chunked into 31 bytes each)
49
49
  // The first element is the length of the bytecode (in bytes)
50
50
  const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
51
51
  const bytecodeLength = Math.ceil(bytecodeLengthAsField.toNumber() / (Fr.SIZE_IN_BYTES - 1));
52
52
  assert(bytecodeLength < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, 'Bytecode exceeds maximum deployable size');
53
53
  // NOTE: hash the bytecode here only up to the actual length of the bytecode.
54
54
  // We do not hash the entire max bytecode length!
55
- return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
55
+ const sep = BigInt(GeneratorIndex.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
56
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
56
57
  }
@@ -15,6 +15,8 @@ export interface NodeInfo {
15
15
  l1ContractAddresses: L1ContractAddresses;
16
16
  /** Protocol contract addresses */
17
17
  protocolContractAddresses: ProtocolContractAddresses;
18
+ /** Whether the node requires real proofs for transaction submission. */
19
+ realProofs: boolean;
18
20
  }
19
21
  export declare const NodeInfoSchema: ZodFor<NodeInfo>;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbmZvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvaW50ZXJmYWNlcy9ub2RlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQTZCLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQW1DLE1BQU0sa0NBQWtDLENBQUM7QUFFbkgseURBQXlEO0FBQ3pELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLDJEQUEyRDtJQUMzRCxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLG1CQUFtQjtJQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHNCQUFzQjtJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQjtJQUN0QixHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4Qix5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7SUFDekMsa0NBQWtDO0lBQ2xDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO0NBQ3REO0FBRUQsZUFBTyxNQUFNLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQVNLLENBQUMifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbmZvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvaW50ZXJmYWNlcy9ub2RlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQTZCLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQW1DLE1BQU0sa0NBQWtDLENBQUM7QUFFbkgseURBQXlEO0FBQ3pELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLDJEQUEyRDtJQUMzRCxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLG1CQUFtQjtJQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHNCQUFzQjtJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQjtJQUN0QixHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4Qix5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7SUFDekMsa0NBQWtDO0lBQ2xDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO0lBQ3JELHdFQUF3RTtJQUN4RSxVQUFVLEVBQUUsT0FBTyxDQUFDO0NBQ3JCO0FBRUQsZUFBTyxNQUFNLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQVVLLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"node-info.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/node-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,uCAAuC,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,kCAAkC,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,yCAAyC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kCAAkC;IAClC,yBAAyB,EAAE,yBAAyB,CAAC;CACtD;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,CASK,CAAC"}
1
+ {"version":3,"file":"node-info.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/node-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,uCAAuC,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,kCAAkC,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,yCAAyC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kCAAkC;IAClC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,CAUK,CAAC"}
@@ -7,7 +7,8 @@ export const NodeInfoSchema = z.object({
7
7
  rollupVersion: z.number().int().nonnegative(),
8
8
  enr: z.string().optional(),
9
9
  l1ContractAddresses: L1ContractAddressesSchema,
10
- protocolContractAddresses: ProtocolContractAddressesSchema
10
+ protocolContractAddresses: ProtocolContractAddressesSchema,
11
+ realProofs: z.boolean()
11
12
  }).transform((obj)=>({
12
13
  enr: undefined,
13
14
  ...obj
@@ -25,7 +25,7 @@ function computePrivateFunctionLeaves(fns) {
25
25
  return (await poseidon2HashWithSeparator([
26
26
  fn.selector,
27
27
  fn.vkHash
28
- ], GeneratorIndex.FUNCTION_LEAF)).toBuffer();
28
+ ], GeneratorIndex.PRIVATE_FUNCTION_LEAF)).toBuffer();
29
29
  }
30
30
  async function getPrivateFunctionTreeCalculator() {
31
31
  if (!privateFunctionTreeCalculator) {
@@ -15,7 +15,7 @@ export declare function createPrivateFunctionMembershipProof(selector: FunctionS
15
15
  * contract_class = db.get_contract_class(contract_class_id)
16
16
  *
17
17
  * // Compute function leaf and assert it belongs to the private functions tree
18
- * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__FUNCTION_LEAF)
18
+ * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF)
19
19
  * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
20
20
  * assert computed_private_function_tree_root == contract_class.private_functions_root
21
21
  *
@@ -70,7 +70,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
70
70
  * contract_class = db.get_contract_class(contract_class_id)
71
71
  *
72
72
  * // Compute function leaf and assert it belongs to the private functions tree
73
- * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__FUNCTION_LEAF)
73
+ * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF)
74
74
  * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
75
75
  * assert computed_private_function_tree_root == contract_class.private_functions_root
76
76
  *
@@ -0,0 +1,58 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { z } from 'zod';
3
+ /**
4
+ * Symbol for Node.js custom inspect. Using Symbol.for() is the documented way to
5
+ * reference this without importing node:util. In browsers, objects with this symbol
6
+ * simply won't have custom inspect behavior (which is fine).
7
+ * @see https://nodejs.org/api/util.html#utilinspectcustom
8
+ */
9
+ declare const inspectCustomSymbol: unique symbol;
10
+ /**
11
+ * Represents a version record for storing in a version file.
12
+ */
13
+ export declare class DatabaseVersion {
14
+ /** The version of the data on disk. Used to perform upgrades */
15
+ readonly schemaVersion: number;
16
+ /** The rollup the data pertains to */
17
+ readonly rollupAddress: EthAddress;
18
+ constructor(
19
+ /** The version of the data on disk. Used to perform upgrades */
20
+ schemaVersion: number,
21
+ /** The rollup the data pertains to */
22
+ rollupAddress: EthAddress);
23
+ toBuffer(): Buffer;
24
+ static fromBuffer(buf: Buffer): DatabaseVersion;
25
+ /**
26
+ * Compares two versions. If the rollups addresses are different then it returns undefined
27
+ */
28
+ cmp(other: DatabaseVersion): undefined | -1 | 0 | 1;
29
+ /**
30
+ * Checks if two versions exactly match
31
+ */
32
+ equals(other: DatabaseVersion): boolean;
33
+ /**
34
+ * Returns the schema for this class
35
+ */
36
+ static get schema(): z.ZodEffects<z.ZodObject<{
37
+ schemaVersion: z.ZodNumber;
38
+ rollupAddress: z.ZodType<EthAddress, any, string>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ schemaVersion: number;
41
+ rollupAddress: EthAddress;
42
+ }, {
43
+ schemaVersion: number;
44
+ rollupAddress: string;
45
+ }>, DatabaseVersion, {
46
+ schemaVersion: number;
47
+ rollupAddress: string;
48
+ }>;
49
+ /** Allows for better introspection in Node.js console. Ignored in browser envs. */
50
+ [inspectCustomSymbol](): string;
51
+ toString(): string;
52
+ /**
53
+ * Returns an empty instance
54
+ */
55
+ static empty(): DatabaseVersion;
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2VfdmVyc2lvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlLXZlcnNpb24vZGF0YWJhc2VfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7Ozs7R0FLRztBQUNILFFBQUEsTUFBTSxtQkFBbUIsZUFBMkMsQ0FBQztBQUVyRTs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFFeEIsZ0VBQWdFO2FBQ2hELGFBQWEsRUFBRSxNQUFNO0lBQ3JDLHNDQUFzQzthQUN0QixhQUFhLEVBQUUsVUFBVTtJQUozQztJQUNFLGdFQUFnRTtJQUNoRCxhQUFhLEVBQUUsTUFBTTtJQUNyQyxzQ0FBc0M7SUFDdEIsYUFBYSxFQUFFLFVBQVUsRUFDdkM7SUFFRyxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVELE9BQWMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZUFBZSxDQU1yRDtJQUVEOztPQUVHO0lBQ0ksR0FBRyxDQUFDLEtBQUssRUFBRSxlQUFlLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBV3pEO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxFQUFFLGVBQWUsR0FBRyxPQUFPLENBRTdDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7O09BT2hCO0lBRUQsbUZBQW1GO0lBQzVFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxNQUFNLENBRXJDO0lBRU0sUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLG9CQUVYO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database_version.d.ts","sourceRoot":"","sources":["../../src/database-version/database_version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,eAA2C,CAAC;AAErE;;GAEG;AACH,qBAAa,eAAe;IAExB,gEAAgE;aAChD,aAAa,EAAE,MAAM;IACrC,sCAAsC;aACtB,aAAa,EAAE,UAAU;IAJ3C;IACE,gEAAgE;IAChD,aAAa,EAAE,MAAM;IACrC,sCAAsC;IACtB,aAAa,EAAE,UAAU,EACvC;IAEG,QAAQ,IAAI,MAAM,CAExB;IAED,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAMrD;IAED;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAWzD;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE7C;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED,mFAAmF;IAC5E,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAErC;IAEM,QAAQ,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,oBAEX;CACF"}
@@ -0,0 +1,69 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
3
+ import { z } from 'zod';
4
+ /**
5
+ * Symbol for Node.js custom inspect. Using Symbol.for() is the documented way to
6
+ * reference this without importing node:util. In browsers, objects with this symbol
7
+ * simply won't have custom inspect behavior (which is fine).
8
+ * @see https://nodejs.org/api/util.html#utilinspectcustom
9
+ */ const inspectCustomSymbol = Symbol.for('nodejs.util.inspect.custom');
10
+ /**
11
+ * Represents a version record for storing in a version file.
12
+ */ export class DatabaseVersion {
13
+ schemaVersion;
14
+ rollupAddress;
15
+ constructor(/** The version of the data on disk. Used to perform upgrades */ schemaVersion, /** The rollup the data pertains to */ rollupAddress){
16
+ this.schemaVersion = schemaVersion;
17
+ this.rollupAddress = rollupAddress;
18
+ }
19
+ toBuffer() {
20
+ return Buffer.from(jsonStringify(this));
21
+ }
22
+ static fromBuffer(buf) {
23
+ try {
24
+ return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
25
+ } catch (err) {
26
+ throw new Error(`Failed to deserialize version information: ${err}`, {
27
+ cause: err
28
+ });
29
+ }
30
+ }
31
+ /**
32
+ * Compares two versions. If the rollups addresses are different then it returns undefined
33
+ */ cmp(other) {
34
+ if (this.rollupAddress.equals(other.rollupAddress)) {
35
+ if (this.schemaVersion < other.schemaVersion) {
36
+ return -1;
37
+ } else if (this.schemaVersion > other.schemaVersion) {
38
+ return 1;
39
+ } else {
40
+ return 0;
41
+ }
42
+ }
43
+ return undefined;
44
+ }
45
+ /**
46
+ * Checks if two versions exactly match
47
+ */ equals(other) {
48
+ return this.cmp(other) === 0;
49
+ }
50
+ /**
51
+ * Returns the schema for this class
52
+ */ static get schema() {
53
+ return z.object({
54
+ schemaVersion: z.number(),
55
+ rollupAddress: EthAddress.schema
56
+ }).transform(({ schemaVersion, rollupAddress })=>new DatabaseVersion(schemaVersion, rollupAddress));
57
+ }
58
+ /** Allows for better introspection in Node.js console. Ignored in browser envs. */ [inspectCustomSymbol]() {
59
+ return this.toString();
60
+ }
61
+ toString() {
62
+ return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
63
+ }
64
+ /**
65
+ * Returns an empty instance
66
+ */ static empty() {
67
+ return new DatabaseVersion(0, EthAddress.ZERO);
68
+ }
69
+ }