@aztec/stdlib 0.0.1-commit.7cf39cb55 → 0.0.1-commit.808bf7f90

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 (216) hide show
  1. package/dest/auth_witness/auth_witness.js +3 -3
  2. package/dest/block/block_data.d.ts +52 -0
  3. package/dest/block/block_data.d.ts.map +1 -0
  4. package/dest/block/block_data.js +12 -0
  5. package/dest/block/index.d.ts +2 -1
  6. package/dest/block/index.d.ts.map +1 -1
  7. package/dest/block/index.js +1 -0
  8. package/dest/block/l2_block_source.d.ts +20 -1
  9. package/dest/block/l2_block_source.d.ts.map +1 -1
  10. package/dest/checkpoint/checkpoint.d.ts +21 -7
  11. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  12. package/dest/checkpoint/checkpoint.js +24 -13
  13. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  14. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  15. package/dest/checkpoint/checkpoint_data.js +26 -0
  16. package/dest/checkpoint/index.d.ts +2 -1
  17. package/dest/checkpoint/index.d.ts.map +1 -1
  18. package/dest/checkpoint/index.js +1 -0
  19. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  20. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  21. package/dest/checkpoint/published_checkpoint.js +1 -2
  22. package/dest/config/sequencer-config.d.ts +2 -2
  23. package/dest/config/sequencer-config.d.ts.map +1 -1
  24. package/dest/config/sequencer-config.js +6 -0
  25. package/dest/contract/contract_address.js +4 -4
  26. package/dest/contract/contract_class.d.ts +2 -3
  27. package/dest/contract/contract_class.d.ts.map +1 -1
  28. package/dest/contract/contract_class_id.d.ts +1 -1
  29. package/dest/contract/contract_class_id.d.ts.map +1 -1
  30. package/dest/contract/contract_class_id.js +5 -4
  31. package/dest/contract/private_function.js +2 -2
  32. package/dest/file-store/local.d.ts +3 -3
  33. package/dest/file-store/local.d.ts.map +1 -1
  34. package/dest/file-store/local.js +13 -4
  35. package/dest/file-store/s3.d.ts +1 -1
  36. package/dest/file-store/s3.d.ts.map +1 -1
  37. package/dest/file-store/s3.js +11 -3
  38. package/dest/ha-signing/config.d.ts +101 -0
  39. package/dest/ha-signing/config.d.ts.map +1 -0
  40. package/dest/ha-signing/config.js +92 -0
  41. package/dest/ha-signing/index.d.ts +3 -0
  42. package/dest/ha-signing/index.d.ts.map +1 -0
  43. package/dest/ha-signing/index.js +2 -0
  44. package/dest/ha-signing/types.d.ts +85 -0
  45. package/dest/ha-signing/types.d.ts.map +1 -0
  46. package/dest/ha-signing/types.js +32 -0
  47. package/dest/hash/hash.js +11 -11
  48. package/dest/hash/map_slot.js +2 -2
  49. package/dest/interfaces/archiver.d.ts +1 -1
  50. package/dest/interfaces/archiver.d.ts.map +1 -1
  51. package/dest/interfaces/archiver.js +5 -0
  52. package/dest/interfaces/aztec-node-admin.d.ts +30 -2
  53. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  54. package/dest/interfaces/aztec-node-admin.js +9 -3
  55. package/dest/interfaces/aztec-node.d.ts +1 -1
  56. package/dest/interfaces/block-builder.d.ts +2 -2
  57. package/dest/interfaces/block-builder.d.ts.map +1 -1
  58. package/dest/interfaces/configs.d.ts +17 -2
  59. package/dest/interfaces/configs.d.ts.map +1 -1
  60. package/dest/interfaces/configs.js +4 -1
  61. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  62. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  63. package/dest/interfaces/proving-job.d.ts +2 -2
  64. package/dest/interfaces/validator.d.ts +3 -3
  65. package/dest/interfaces/validator.d.ts.map +1 -1
  66. package/dest/interfaces/validator.js +1 -1
  67. package/dest/kernel/hints/index.d.ts +2 -2
  68. package/dest/kernel/hints/index.js +2 -2
  69. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  70. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  71. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  72. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  73. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  74. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  75. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  76. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  77. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  78. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  79. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  80. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  81. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  82. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  83. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  84. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +3 -3
  85. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  86. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
  87. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  88. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  89. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  90. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  91. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  92. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  93. package/dest/kernel/private_validation_requests.d.ts +3 -3
  94. package/dest/kernel/private_validation_requests.js +9 -9
  95. package/dest/keys/derivation.js +8 -8
  96. package/dest/keys/key_types.d.ts +3 -3
  97. package/dest/keys/key_types.d.ts.map +1 -1
  98. package/dest/keys/public_keys.js +2 -2
  99. package/dest/keys/utils.js +5 -5
  100. package/dest/logs/debug_log_store.d.ts +30 -0
  101. package/dest/logs/debug_log_store.d.ts.map +1 -0
  102. package/dest/logs/debug_log_store.js +30 -0
  103. package/dest/logs/index.d.ts +2 -1
  104. package/dest/logs/index.d.ts.map +1 -1
  105. package/dest/logs/index.js +1 -0
  106. package/dest/logs/private_log.d.ts +2 -2
  107. package/dest/logs/private_log.d.ts.map +1 -1
  108. package/dest/note/index.d.ts +1 -2
  109. package/dest/note/index.d.ts.map +1 -1
  110. package/dest/note/index.js +0 -1
  111. package/dest/p2p/attestation_utils.d.ts +11 -1
  112. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  113. package/dest/p2p/attestation_utils.js +45 -0
  114. package/dest/p2p/block_proposal.d.ts +2 -2
  115. package/dest/p2p/block_proposal.d.ts.map +1 -1
  116. package/dest/p2p/block_proposal.js +2 -4
  117. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  118. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  119. package/dest/p2p/checkpoint_attestation.js +1 -1
  120. package/dest/p2p/checkpoint_proposal.d.ts +11 -6
  121. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  122. package/dest/p2p/checkpoint_proposal.js +21 -16
  123. package/dest/p2p/consensus_payload.d.ts +12 -3
  124. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  125. package/dest/p2p/consensus_payload.js +22 -15
  126. package/dest/rollup/checkpoint_header.d.ts +2 -2
  127. package/dest/rollup/checkpoint_header.js +2 -2
  128. package/dest/tests/factories.js +11 -11
  129. package/dest/tests/mocks.d.ts +5 -2
  130. package/dest/tests/mocks.d.ts.map +1 -1
  131. package/dest/tests/mocks.js +18 -13
  132. package/dest/tx/block_header.js +2 -2
  133. package/dest/tx/global_variables.d.ts +4 -4
  134. package/dest/tx/global_variables.d.ts.map +1 -1
  135. package/dest/tx/profiling.d.ts +4 -4
  136. package/dest/tx/profiling.d.ts.map +1 -1
  137. package/dest/tx/profiling.js +3 -3
  138. package/dest/tx/protocol_contracts.d.ts +1 -1
  139. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  140. package/dest/tx/protocol_contracts.js +2 -2
  141. package/dest/tx/public_simulation_output.d.ts +4 -2
  142. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  143. package/dest/tx/public_simulation_output.js +7 -3
  144. package/dest/tx/tx_receipt.d.ts +16 -2
  145. package/dest/tx/tx_receipt.d.ts.map +1 -1
  146. package/dest/tx/tx_receipt.js +11 -3
  147. package/dest/tx/tx_request.js +2 -2
  148. package/dest/tx/validator/error_texts.d.ts +1 -1
  149. package/dest/tx/validator/error_texts.js +1 -1
  150. package/package.json +9 -9
  151. package/src/auth_witness/auth_witness.ts +3 -3
  152. package/src/block/block_data.ts +26 -0
  153. package/src/block/index.ts +1 -0
  154. package/src/block/l2_block_source.ts +22 -0
  155. package/src/checkpoint/checkpoint.ts +32 -14
  156. package/src/checkpoint/checkpoint_data.ts +51 -0
  157. package/src/checkpoint/index.ts +1 -0
  158. package/src/checkpoint/published_checkpoint.ts +3 -1
  159. package/src/config/sequencer-config.ts +11 -1
  160. package/src/contract/contract_address.ts +4 -4
  161. package/src/contract/contract_class.ts +3 -3
  162. package/src/contract/contract_class_id.ts +5 -4
  163. package/src/contract/private_function.ts +2 -2
  164. package/src/file-store/local.ts +15 -5
  165. package/src/file-store/s3.ts +12 -3
  166. package/src/ha-signing/config.ts +149 -0
  167. package/src/ha-signing/index.ts +18 -0
  168. package/src/ha-signing/types.ts +112 -0
  169. package/src/hash/hash.ts +11 -11
  170. package/src/hash/map_slot.ts +2 -2
  171. package/src/interfaces/archiver.ts +5 -0
  172. package/src/interfaces/aztec-node-admin.ts +23 -0
  173. package/src/interfaces/aztec-node.ts +1 -1
  174. package/src/interfaces/block-builder.ts +1 -0
  175. package/src/interfaces/configs.ts +12 -1
  176. package/src/interfaces/merkle_tree_operations.ts +1 -1
  177. package/src/interfaces/validator.ts +2 -1
  178. package/src/kernel/hints/index.ts +2 -2
  179. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  180. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  181. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  182. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  183. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  184. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  185. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  186. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  187. package/src/kernel/private_validation_requests.ts +8 -8
  188. package/src/keys/derivation.ts +8 -8
  189. package/src/keys/key_types.ts +6 -2
  190. package/src/keys/public_keys.ts +2 -2
  191. package/src/keys/utils.ts +5 -5
  192. package/src/logs/debug_log_store.ts +54 -0
  193. package/src/logs/index.ts +1 -0
  194. package/src/note/index.ts +0 -1
  195. package/src/p2p/attestation_utils.ts +56 -0
  196. package/src/p2p/block_proposal.ts +1 -3
  197. package/src/p2p/checkpoint_attestation.ts +6 -1
  198. package/src/p2p/checkpoint_proposal.ts +36 -14
  199. package/src/p2p/consensus_payload.ts +25 -12
  200. package/src/rollup/checkpoint_header.ts +2 -2
  201. package/src/tests/factories.ts +12 -12
  202. package/src/tests/mocks.ts +28 -13
  203. package/src/tx/block_header.ts +2 -2
  204. package/src/tx/global_variables.ts +3 -3
  205. package/src/tx/profiling.ts +5 -5
  206. package/src/tx/protocol_contracts.ts +2 -2
  207. package/src/tx/public_simulation_output.ts +4 -0
  208. package/src/tx/tx_receipt.ts +10 -0
  209. package/src/tx/tx_request.ts +2 -2
  210. package/src/tx/validator/error_texts.ts +1 -1
  211. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  212. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  213. package/dest/note/notes_filter.d.ts +0 -30
  214. package/dest/note/notes_filter.d.ts.map +0 -1
  215. package/dest/note/notes_filter.js +0 -11
  216. package/src/note/notes_filter.ts +0 -41
@@ -31,10 +31,19 @@ export declare class L1PublishedData {
31
31
  toBuffer(): Buffer;
32
32
  }
33
33
  export declare class PublishedCheckpoint {
34
+ /** The checkpoint itself. */
34
35
  checkpoint: Checkpoint;
36
+ /** Info on when this checkpoint was published on L1. */
35
37
  l1: L1PublishedData;
38
+ /** The attestations for the last block in the checkpoint. */
36
39
  attestations: CommitteeAttestation[];
37
- constructor(checkpoint: Checkpoint, l1: L1PublishedData, attestations: CommitteeAttestation[]);
40
+ constructor(
41
+ /** The checkpoint itself. */
42
+ checkpoint: Checkpoint,
43
+ /** Info on when this checkpoint was published on L1. */
44
+ l1: L1PublishedData,
45
+ /** The attestations for the last block in the checkpoint. */
46
+ attestations: CommitteeAttestation[]);
38
47
  static get schema(): z.ZodEffects<z.ZodObject<{
39
48
  checkpoint: z.ZodEffects<z.ZodObject<{
40
49
  archive: z.ZodEffects<z.ZodObject<{
@@ -99,6 +108,7 @@ export declare class PublishedCheckpoint {
99
108
  indexWithinCheckpoint: string | number | bigint;
100
109
  }>, "many">;
101
110
  number: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, import("@aztec/foundation/branded-types").CheckpointNumber, string | number | bigint>;
111
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
102
112
  }, "strip", z.ZodTypeAny, {
103
113
  archive: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
104
114
  header: import("../rollup/checkpoint_header.js").CheckpointHeader;
@@ -106,6 +116,7 @@ export declare class PublishedCheckpoint {
106
116
  number: number & {
107
117
  _branding: "CheckpointNumber";
108
118
  };
119
+ feeAssetPriceModifier: bigint;
109
120
  }, {
110
121
  archive: {
111
122
  root: string;
@@ -123,6 +134,7 @@ export declare class PublishedCheckpoint {
123
134
  indexWithinCheckpoint: string | number | bigint;
124
135
  }[];
125
136
  number: string | number | bigint;
137
+ feeAssetPriceModifier: string | number | bigint;
126
138
  }>, Checkpoint, {
127
139
  archive: {
128
140
  root: string;
@@ -140,6 +152,7 @@ export declare class PublishedCheckpoint {
140
152
  indexWithinCheckpoint: string | number | bigint;
141
153
  }[];
142
154
  number: string | number | bigint;
155
+ feeAssetPriceModifier: string | number | bigint;
143
156
  }>;
144
157
  l1: z.ZodEffects<z.ZodObject<{
145
158
  blockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
@@ -193,6 +206,7 @@ export declare class PublishedCheckpoint {
193
206
  indexWithinCheckpoint: string | number | bigint;
194
207
  }[];
195
208
  number: string | number | bigint;
209
+ feeAssetPriceModifier: string | number | bigint;
196
210
  };
197
211
  l1: {
198
212
  blockNumber: string | number | bigint;
@@ -221,6 +235,7 @@ export declare class PublishedCheckpoint {
221
235
  indexWithinCheckpoint: string | number | bigint;
222
236
  }[];
223
237
  number: string | number | bigint;
238
+ feeAssetPriceModifier: string | number | bigint;
224
239
  };
225
240
  l1: {
226
241
  blockNumber: string | number | bigint;
@@ -237,4 +252,4 @@ export declare class PublishedCheckpoint {
237
252
  static fromBuffer(bufferOrReader: Buffer | BufferReader): PublishedCheckpoint;
238
253
  toBuffer(): Buffer;
239
254
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3B1Ymxpc2hlZF9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MscUJBQWEsZUFBZTtJQUVqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixTQUFTLEVBQUUsTUFBTTtJQUgxQixZQUNTLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxNQUFNLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7T0FRaEI7SUFFRCxNQUFNLENBQUMsTUFBTSxvQkFNWjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsbUJBRWxEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBTXhFO0lBRU0sUUFBUSxJQUFJLE1BQU0sQ0FFeEI7Q0FDRjtBQUVELHFCQUFhLG1CQUFtQjtJQUVyQixVQUFVLEVBQUUsVUFBVTtJQUN0QixFQUFFLEVBQUUsZUFBZTtJQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUU7SUFKN0MsWUFDUyxVQUFVLEVBQUUsVUFBVSxFQUN0QixFQUFFLEVBQUUsZUFBZSxFQUVuQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFDekM7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrRUFFckQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBRWhEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxtQkFBbUIsQ0FZNUU7SUFFTSxRQUFRLElBQUksTUFBTSxDQVN4QjtDQUNGIn0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3B1Ymxpc2hlZF9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MscUJBQWEsZUFBZTtJQUVqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixTQUFTLEVBQUUsTUFBTTtJQUgxQixZQUNTLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxNQUFNLEVBQ3RCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7T0FRaEI7SUFFRCxNQUFNLENBQUMsTUFBTSxvQkFNWjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsbUJBRWxEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBTXhFO0lBRU0sUUFBUSxJQUFJLE1BQU0sQ0FFeEI7Q0FDRjtBQUVELHFCQUFhLG1CQUFtQjtJQUU1Qiw2QkFBNkI7SUFDdEIsVUFBVSxFQUFFLFVBQVU7SUFDN0Isd0RBQXdEO0lBQ2pELEVBQUUsRUFBRSxlQUFlO0lBQzFCLDZEQUE2RDtJQUN0RCxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7SUFON0M7SUFDRSw2QkFBNkI7SUFDdEIsVUFBVSxFQUFFLFVBQVU7SUFDN0Isd0RBQXdEO0lBQ2pELEVBQUUsRUFBRSxlQUFlO0lBQzFCLDZEQUE2RDtJQUN0RCxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFDekM7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrRUFFckQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsdUJBRWhEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxtQkFBbUIsQ0FZNUU7SUFFTSxRQUFRLElBQUksTUFBTSxDQVN4QjtDQUNGIn0=
@@ -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;IAE5B,6BAA6B;IACtB,UAAU,EAAE,UAAU;IAC7B,wDAAwD;IACjD,EAAE,EAAE,eAAe;IAC1B,6DAA6D;IACtD,YAAY,EAAE,oBAAoB,EAAE;IAN7C;IACE,6BAA6B;IACtB,UAAU,EAAE,UAAU;IAC7B,wDAAwD;IACjD,EAAE,EAAE,eAAe;IAC1B,6DAA6D;IACtD,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"}
@@ -44,8 +44,7 @@ export class PublishedCheckpoint {
44
44
  checkpoint;
45
45
  l1;
46
46
  attestations;
47
- constructor(checkpoint, l1, // The attestations for the last block in the checkpoint.
48
- attestations){
47
+ constructor(/** The checkpoint itself. */ checkpoint, /** Info on when this checkpoint was published on L1. */ l1, /** The attestations for the last block in the checkpoint. */ attestations){
49
48
  this.checkpoint = checkpoint;
50
49
  this.l1 = l1;
51
50
  this.attestations = attestations;
@@ -6,5 +6,5 @@ import type { SequencerConfig } from '../interfaces/configs.js';
6
6
  * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
7
7
  * to avoid duplication.
8
8
  */
9
- export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs'>>;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFDSCxlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQVF0RyxDQUFDIn0=
9
+ export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot'>>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFDSCxlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQzVELElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEdBQUcsK0JBQStCLENBQUMsQ0FpQjNFLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAQtG,CAAC"}
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,CAC5D,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,+BAA+B,CAAC,CAiB3E,CAAC"}
@@ -8,5 +8,11 @@
8
8
  env: 'SEQ_BLOCK_DURATION_MS',
9
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
10
  parseEnv: (val)=>val ? parseInt(val, 10) : undefined
11
+ },
12
+ expectedBlockProposalsPerSlot: {
13
+ env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
14
+ description: 'Expected number of block proposals per slot for P2P peer scoring. ' + '0 (default) disables block proposal scoring. Set to a positive value to enable.',
15
+ parseEnv: (val)=>val ? parseInt(val, 10) : 0,
16
+ defaultValue: 0
11
17
  }
12
18
  };
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { FunctionSelector, encodeArguments } from '../abi/index.js';
@@ -25,7 +25,7 @@ import { computeAddress } from '../keys/index.js';
25
25
  return poseidon2HashWithSeparator([
26
26
  instance.originalContractClassId,
27
27
  saltedInitializationHash
28
- ], GeneratorIndex.PARTIAL_ADDRESS);
28
+ ], DomainSeparator.PARTIAL_ADDRESS);
29
29
  }
30
30
  /**
31
31
  * Computes the salted initialization hash for an address, defined as the hash of the salt and initialization hash.
@@ -35,7 +35,7 @@ import { computeAddress } from '../keys/index.js';
35
35
  instance.salt,
36
36
  instance.initializationHash,
37
37
  instance.deployer
38
- ], GeneratorIndex.PARTIAL_ADDRESS);
38
+ ], DomainSeparator.PARTIAL_ADDRESS);
39
39
  }
40
40
  /**
41
41
  * Computes the initialization hash for an instance given its constructor function and arguments.
@@ -60,5 +60,5 @@ import { computeAddress } from '../keys/index.js';
60
60
  return poseidon2HashWithSeparator([
61
61
  initFn,
62
62
  argsHash
63
- ], GeneratorIndex.INITIALIZER);
63
+ ], DomainSeparator.INITIALIZER);
64
64
  }
@@ -3,7 +3,7 @@ import { type ContractArtifact, type FunctionArtifact } from '../abi/index.js';
3
3
  import { type ContractClassIdPreimage } from './contract_class_id.js';
4
4
  import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
5
5
  /** Contract artifact including its artifact hash */
6
- type ContractArtifactWithHash = ContractArtifact & {
6
+ export type ContractArtifactWithHash = ContractArtifact & {
7
7
  artifactHash: Fr;
8
8
  };
9
9
  /** Creates a ContractClass from a contract compilation artifact. */
@@ -13,5 +13,4 @@ export declare function getContractClassPrivateFunctionFromArtifact(f: FunctionA
13
13
  * For a given private function, computes the hash of its vk.
14
14
  */
15
15
  export declare function computeVerificationKeyHash(f: FunctionArtifact): Promise<Fr>;
16
- export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxnQkFBZ0IsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcvRyxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRixvREFBb0Q7QUFDcEQsS0FBSyx3QkFBd0IsR0FBRyxnQkFBZ0IsR0FBRztJQUFFLFlBQVksRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBS3hFLG9FQUFvRTtBQUNwRSx3QkFBc0IsNEJBQTRCLENBQ2hELFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyx3QkFBd0IsR0FDcEQsT0FBTyxDQUFDLG1CQUFtQixHQUFHLHVCQUF1QixDQUFDLENBMEJ4RDtBQUVELHdCQUFzQiwyQ0FBMkMsQ0FDL0QsQ0FBQyxFQUFFLGdCQUFnQixHQUNsQixPQUFPLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FLcEQ7QUFFRDs7R0FFRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLGVBS25FIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxnQkFBZ0IsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcvRyxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRixvREFBb0Q7QUFDcEQsTUFBTSxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixHQUFHO0lBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQTtDQUFFLENBQUM7QUFLL0Usb0VBQW9FO0FBQ3BFLHdCQUFzQiw0QkFBNEIsQ0FDaEQsUUFBUSxFQUFFLGdCQUFnQixHQUFHLHdCQUF3QixHQUNwRCxPQUFPLENBQUMsbUJBQW1CLEdBQUcsdUJBQXVCLENBQUMsQ0EwQnhEO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxDQUFDLEVBQUUsZ0JBQWdCLEdBQ2xCLE9BQU8sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUtwRDtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsZUFLbkUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,oDAAoD;AACpD,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IAAE,YAAY,EAAE,EAAE,CAAA;CAAE,CAAC;AAKxE,oEAAoE;AACpE,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GACpD,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA0BxD;AAED,wBAAsB,2CAA2C,CAC/D,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,eAKnE"}
1
+ {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,oDAAoD;AACpD,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IAAE,YAAY,EAAE,EAAE,CAAA;CAAE,CAAC;AAK/E,oEAAoE;AACpE,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GACpD,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA0BxD;AAED,wBAAsB,2CAA2C,CAC/D,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,eAKnE"}
@@ -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"}
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { DomainSeparator, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { strict as assert } from 'assert';
@@ -27,7 +27,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
27
27
  artifactHash,
28
28
  privateFunctionsRoot,
29
29
  publicBytecodeCommitment
30
- ], GeneratorIndex.CONTRACT_CLASS_ID);
30
+ ], DomainSeparator.CONTRACT_CLASS_ID);
31
31
  return {
32
32
  id,
33
33
  artifactHash,
@@ -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(DomainSeparator.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
56
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
56
57
  }
@@ -1,4 +1,4 @@
1
- import { FUNCTION_TREE_HEIGHT, GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
2
2
  import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { MerkleTreeCalculator } from '@aztec/foundation/trees';
@@ -25,7 +25,7 @@ function computePrivateFunctionLeaves(fns) {
25
25
  return (await poseidon2HashWithSeparator([
26
26
  fn.selector,
27
27
  fn.vkHash
28
- ], GeneratorIndex.PRIVATE_FUNCTION_LEAF)).toBuffer();
28
+ ], DomainSeparator.PRIVATE_FUNCTION_LEAF)).toBuffer();
29
29
  }
30
30
  async function getPrivateFunctionTreeCalculator() {
31
31
  if (!privateFunctionTreeCalculator) {
@@ -1,8 +1,8 @@
1
- import type { FileStore } from './interface.js';
1
+ import type { FileStore, FileStoreSaveOptions } from './interface.js';
2
2
  export declare class LocalFileStore implements FileStore {
3
3
  private readonly basePath;
4
4
  constructor(basePath: string);
5
- save(path: string, data: Buffer): Promise<string>;
5
+ save(path: string, data: Buffer, opts?: FileStoreSaveOptions): Promise<string>;
6
6
  upload(destPath: string, srcPath: string, _opts: {
7
7
  compress: boolean;
8
8
  }): Promise<string>;
@@ -11,4 +11,4 @@ export declare class LocalFileStore implements FileStore {
11
11
  exists(pathOrUrlStr: string): Promise<boolean>;
12
12
  private getFullPath;
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELHFCQUFhLGNBQWUsWUFBVyxTQUFTO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUFyQyxZQUE2QixRQUFRLEVBQUUsTUFBTSxFQUFJO0lBRXBDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUs3RDtJQUVZLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdwRztJQUVNLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FHakQ7SUFFWSxRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJM0U7SUFFTSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBS3BEO0lBRUQsT0FBTyxDQUFDLFdBQVc7Q0FPcEIifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3RFLHFCQUFhLGNBQWUsWUFBVyxTQUFTO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUFyQyxZQUE2QixRQUFRLEVBQUUsTUFBTSxFQUFJO0lBRXBDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU0xRjtJQUVZLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdwRztJQUVZLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FPdkQ7SUFFWSxRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJM0U7SUFFTSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBS3BEO0lBRUQsT0FBTyxDQUFDLFdBQVc7Q0FPcEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/file-store/local.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,qBAAa,cAAe,YAAW,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEpC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpG;IAEM,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;IAEM,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpD;IAED,OAAO,CAAC,WAAW;CAOpB"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/file-store/local.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtE,qBAAa,cAAe,YAAW,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEpC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1F;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpG;IAEY,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;IAEM,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpD;IAED,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,25 +1,34 @@
1
1
  import { access, mkdir, readFile, writeFile } from 'fs/promises';
2
2
  import { dirname, resolve } from 'path';
3
+ import { promisify } from 'util';
4
+ import { gunzip as gunzipCb, gzip as gzipCb } from 'zlib';
5
+ const gzip = promisify(gzipCb);
6
+ const gunzip = promisify(gunzipCb);
3
7
  export class LocalFileStore {
4
8
  basePath;
5
9
  constructor(basePath){
6
10
  this.basePath = basePath;
7
11
  }
8
- async save(path, data) {
12
+ async save(path, data, opts) {
9
13
  const fullPath = this.getFullPath(path);
10
14
  await mkdir(dirname(fullPath), {
11
15
  recursive: true
12
16
  });
13
- await writeFile(fullPath, data);
17
+ const toWrite = opts?.compress ? await gzip(data) : data;
18
+ await writeFile(fullPath, toWrite);
14
19
  return `file://${fullPath}`;
15
20
  }
16
21
  async upload(destPath, srcPath, _opts) {
17
22
  const data = await readFile(srcPath);
18
23
  return this.save(destPath, data);
19
24
  }
20
- read(pathOrUrlStr) {
25
+ async read(pathOrUrlStr) {
21
26
  const fullPath = this.getFullPath(pathOrUrlStr);
22
- return readFile(fullPath);
27
+ const data = await readFile(fullPath);
28
+ if (data.length >= 2 && data[0] === 0x1f && data[1] === 0x8b) {
29
+ return await gunzip(data);
30
+ }
31
+ return data;
23
32
  }
24
33
  async download(pathOrUrlStr, destPath) {
25
34
  const data = await this.read(pathOrUrlStr);
@@ -23,4 +23,4 @@ export declare class S3FileStore implements FileStore {
23
23
  private getBucketAndKey;
24
24
  private getFullPath;
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQWlCbEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNdEUscUJBQWEsV0FBWSxZQUFXLFNBQVM7SUFPekMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVO0lBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUV6QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFUdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQVc7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVM7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFTO0lBRXhDLFlBQ21CLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2pDLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQ2xDLEdBQUcsR0FBRSxNQUE2QyxFQWVwRTtJQUVZLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFFLG9CQUF5QixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FrQjlGO0lBRVksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUUsb0JBQXlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQXdEdkc7SUFFWSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBU3ZEO0lBRVksUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzNFO0lBRVksTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQWExRDtJQUVELE9BQU8sQ0FBQyxtQkFBbUI7SUFRM0IsT0FBTyxDQUFDLGlCQUFpQjtJQXNCekIsT0FBTyxDQUFDLGdCQUFnQjtJQTBCeEIsT0FBTyxDQUFDLGVBQWU7SUEyQnZCLE9BQU8sQ0FBQyxXQUFXO0NBS3BCIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQWtCbEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTdEUscUJBQWEsV0FBWSxZQUFXLFNBQVM7SUFPekMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVO0lBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUV6QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFUdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQVc7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVM7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFTO0lBRXhDLFlBQ21CLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2pDLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQ2xDLEdBQUcsR0FBRSxNQUE2QyxFQWVwRTtJQUVZLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFFLG9CQUF5QixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FtQjlGO0lBRVksTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUUsb0JBQXlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQXdEdkc7SUFFWSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBYXZEO0lBRVksUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzNFO0lBRVksTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQWExRDtJQUVELE9BQU8sQ0FBQyxtQkFBbUI7SUFRM0IsT0FBTyxDQUFDLGlCQUFpQjtJQXNCekIsT0FBTyxDQUFDLGdCQUFnQjtJQTBCeEIsT0FBTyxDQUFDLGVBQWU7SUEyQnZCLE9BQU8sQ0FBQyxXQUFXO0NBS3BCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/file-store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAiBlE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,qBAAa,WAAY,YAAW,SAAS;IAOzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC,YACmB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACjC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,GAAG,GAAE,MAA6C,EAepE;IAEY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB9F;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDvG;IAEY,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASvD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;IAEY,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1D;IAED,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;CAKpB"}
1
+ {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/file-store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAkBlE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAStE,qBAAa,WAAY,YAAW,SAAS;IAOzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC,YACmB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACjC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,GAAG,GAAE,MAA6C,EAepE;IAEY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB9F;IAEY,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDvG;IAEY,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAavD;IAEY,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;IAEY,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1D;IAED,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;CAKpB"}
@@ -5,7 +5,10 @@ import { mkdir, mkdtemp, stat, unlink } from 'fs/promises';
5
5
  import { tmpdir } from 'os';
6
6
  import { basename, dirname, join } from 'path';
7
7
  import { pipeline } from 'stream/promises';
8
- import { createGzip } from 'zlib';
8
+ import { promisify } from 'util';
9
+ import { createGzip, gunzip as gunzipCb, gzip as gzipCb } from 'zlib';
10
+ const gzip = promisify(gzipCb);
11
+ const gunzip = promisify(gunzipCb);
9
12
  function normalizeBasePath(path) {
10
13
  return path?.replace(/^\/+|\/+$/g, '') ?? '';
11
14
  }
@@ -37,7 +40,7 @@ export class S3FileStore {
37
40
  async save(path, data, opts = {}) {
38
41
  const key = this.getFullPath(path);
39
42
  const shouldCompress = !!opts.compress;
40
- const body = shouldCompress ? (await import('zlib')).gzipSync(data) : data;
43
+ const body = shouldCompress ? await gzip(data) : data;
41
44
  const contentLength = body.length;
42
45
  const contentType = this.detectContentType(key, shouldCompress);
43
46
  const put = new PutObjectCommand({
@@ -45,6 +48,7 @@ export class S3FileStore {
45
48
  Key: key,
46
49
  Body: body,
47
50
  ContentType: contentType,
51
+ ContentEncoding: shouldCompress ? 'gzip' : undefined,
48
52
  CacheControl: opts.metadata?.['Cache-control'],
49
53
  Metadata: this.extractUserMetadata(opts.metadata),
50
54
  ContentLength: contentLength
@@ -119,7 +123,11 @@ export class S3FileStore {
119
123
  for await (const chunk of stream){
120
124
  chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
121
125
  }
122
- return Buffer.concat(chunks);
126
+ const buffer = Buffer.concat(chunks);
127
+ if (out.ContentEncoding === 'gzip') {
128
+ return await gunzip(buffer);
129
+ }
130
+ return buffer;
123
131
  }
124
132
  async download(pathOrUrlStr, destPath) {
125
133
  const { bucket, key } = this.getBucketAndKey(pathOrUrlStr);
@@ -0,0 +1,101 @@
1
+ import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
2
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
3
+ import { EthAddress } from '@aztec/foundation/eth-address';
4
+ import { z } from 'zod';
5
+ /**
6
+ * Configuration for the Validator HA Signer
7
+ *
8
+ * This config is used for distributed locking and slashing protection
9
+ * when running multiple validator nodes in a high-availability setup.
10
+ */
11
+ export interface ValidatorHASignerConfig {
12
+ /** Whether HA signing / slashing protection is enabled */
13
+ haSigningEnabled: boolean;
14
+ /** L1 contract addresses (rollup address required) */
15
+ l1Contracts: Pick<L1ContractAddresses, 'rollupAddress'>;
16
+ /** Unique identifier for this node */
17
+ nodeId: string;
18
+ /** How long to wait between polls when a duty is being signed (ms) */
19
+ pollingIntervalMs: number;
20
+ /** Maximum time to wait for a duty being signed to complete (ms) */
21
+ signingTimeoutMs: number;
22
+ /** Maximum age of a stuck duty in ms (defaults to 2x hardcoded Aztec slot duration if not set) */
23
+ maxStuckDutiesAgeMs?: number;
24
+ /** Optional: clean up old duties after this many hours (disabled if not set) */
25
+ cleanupOldDutiesAfterHours?: number;
26
+ /**
27
+ * PostgreSQL connection string
28
+ * Format: postgresql://user:password@host:port/database
29
+ */
30
+ databaseUrl?: string;
31
+ /**
32
+ * PostgreSQL connection pool configuration
33
+ */
34
+ /** Maximum number of clients in the pool (default: 10) */
35
+ poolMaxCount?: number;
36
+ /** Minimum number of clients in the pool (default: 0) */
37
+ poolMinCount?: number;
38
+ /** Idle timeout in milliseconds (default: 10000) */
39
+ poolIdleTimeoutMs?: number;
40
+ /** Connection timeout in milliseconds (default: 0, no timeout) */
41
+ poolConnectionTimeoutMs?: number;
42
+ }
43
+ export declare const validatorHASignerConfigMappings: ConfigMappingsType<ValidatorHASignerConfig>;
44
+ export declare const defaultValidatorHASignerConfig: ValidatorHASignerConfig;
45
+ /**
46
+ * Returns the validator HA signer configuration from environment variables.
47
+ * Note: If an environment variable is not set, the default value is used.
48
+ * @returns The validator HA signer configuration.
49
+ */
50
+ export declare function getConfigEnvVars(): ValidatorHASignerConfig;
51
+ export declare const ValidatorHASignerConfigSchema: z.ZodObject<{
52
+ haSigningEnabled: z.ZodBoolean;
53
+ l1Contracts: z.ZodObject<{
54
+ rollupAddress: z.ZodType<EthAddress, z.ZodTypeDef, EthAddress>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ rollupAddress: EthAddress;
57
+ }, {
58
+ rollupAddress: EthAddress;
59
+ }>;
60
+ nodeId: z.ZodString;
61
+ pollingIntervalMs: z.ZodNumber;
62
+ signingTimeoutMs: z.ZodNumber;
63
+ maxStuckDutiesAgeMs: z.ZodOptional<z.ZodNumber>;
64
+ cleanupOldDutiesAfterHours: z.ZodOptional<z.ZodNumber>;
65
+ databaseUrl: z.ZodOptional<z.ZodString>;
66
+ poolMaxCount: z.ZodOptional<z.ZodNumber>;
67
+ poolMinCount: z.ZodOptional<z.ZodNumber>;
68
+ poolIdleTimeoutMs: z.ZodOptional<z.ZodNumber>;
69
+ poolConnectionTimeoutMs: z.ZodOptional<z.ZodNumber>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ haSigningEnabled: boolean;
72
+ l1Contracts: {
73
+ rollupAddress: EthAddress;
74
+ };
75
+ nodeId: string;
76
+ pollingIntervalMs: number;
77
+ signingTimeoutMs: number;
78
+ maxStuckDutiesAgeMs?: number | undefined;
79
+ cleanupOldDutiesAfterHours?: number | undefined;
80
+ databaseUrl?: string | undefined;
81
+ poolMaxCount?: number | undefined;
82
+ poolMinCount?: number | undefined;
83
+ poolIdleTimeoutMs?: number | undefined;
84
+ poolConnectionTimeoutMs?: number | undefined;
85
+ }, {
86
+ haSigningEnabled: boolean;
87
+ l1Contracts: {
88
+ rollupAddress: EthAddress;
89
+ };
90
+ nodeId: string;
91
+ pollingIntervalMs: number;
92
+ signingTimeoutMs: number;
93
+ maxStuckDutiesAgeMs?: number | undefined;
94
+ cleanupOldDutiesAfterHours?: number | undefined;
95
+ databaseUrl?: string | undefined;
96
+ poolMaxCount?: number | undefined;
97
+ poolMinCount?: number | undefined;
98
+ poolIdleTimeoutMs?: number | undefined;
99
+ poolConnectionTimeoutMs?: number | undefined;
100
+ }>;
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGEtc2lnbmluZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFNeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx1QkFBdUI7SUFDdEMsMERBQTBEO0lBQzFELGdCQUFnQixFQUFFLE9BQU8sQ0FBQztJQUMxQixzREFBc0Q7SUFDdEQsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN4RCxzQ0FBc0M7SUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLHNFQUFzRTtJQUN0RSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsb0VBQW9FO0lBQ3BFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUN6QixrR0FBa0c7SUFDbEcsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDN0IsZ0ZBQWdGO0lBQ2hGLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BDOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQjs7T0FFRztJQUNILDBEQUEwRDtJQUMxRCxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEIseURBQXlEO0lBQ3pELFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QixvREFBb0Q7SUFDcEQsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDM0Isa0VBQWtFO0lBQ2xFLHVCQUF1QixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2xDO0FBRUQsZUFBTyxNQUFNLCtCQUErQixFQUFFLGtCQUFrQixDQUFDLHVCQUF1QixDQWlFdkYsQ0FBQztBQUVGLGVBQU8sTUFBTSw4QkFBOEIsRUFBRSx1QkFFNUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLElBQUksdUJBQXVCLENBRTFEO0FBRUQsZUFBTyxNQUFNLDZCQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWVFLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ha-signing/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sDAAsD;IACtD,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACxD,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kGAAkG;IAClG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,+BAA+B,EAAE,kBAAkB,CAAC,uBAAuB,CAiEvF,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAE5C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,uBAAuB,CAE1D;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeE,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { z } from 'zod';
4
+ export const validatorHASignerConfigMappings = {
5
+ haSigningEnabled: {
6
+ env: 'VALIDATOR_HA_SIGNING_ENABLED',
7
+ description: 'Whether HA signing / slashing protection is enabled',
8
+ ...booleanConfigHelper(false)
9
+ },
10
+ l1Contracts: {
11
+ description: 'L1 contract addresses (rollup address required)',
12
+ nested: {
13
+ rollupAddress: {
14
+ description: 'The Ethereum address of the rollup contract (must be set programmatically)',
15
+ parseEnv: (val)=>EthAddress.fromString(val)
16
+ }
17
+ }
18
+ },
19
+ nodeId: {
20
+ env: 'VALIDATOR_HA_NODE_ID',
21
+ description: 'The unique identifier for this node',
22
+ defaultValue: ''
23
+ },
24
+ pollingIntervalMs: {
25
+ env: 'VALIDATOR_HA_POLLING_INTERVAL_MS',
26
+ description: 'The number of ms to wait between polls when a duty is being signed',
27
+ ...numberConfigHelper(100)
28
+ },
29
+ signingTimeoutMs: {
30
+ env: 'VALIDATOR_HA_SIGNING_TIMEOUT_MS',
31
+ description: 'The maximum time to wait for a duty being signed to complete',
32
+ ...numberConfigHelper(3_000)
33
+ },
34
+ maxStuckDutiesAgeMs: {
35
+ env: 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS',
36
+ description: 'The maximum age of a stuck duty in ms (defaults to 2x Aztec slot duration)',
37
+ ...optionalNumberConfigHelper()
38
+ },
39
+ cleanupOldDutiesAfterHours: {
40
+ env: 'VALIDATOR_HA_OLD_DUTIES_MAX_AGE_H',
41
+ description: 'Optional: clean up old duties after this many hours (disabled if not set)',
42
+ ...optionalNumberConfigHelper()
43
+ },
44
+ databaseUrl: {
45
+ env: 'VALIDATOR_HA_DATABASE_URL',
46
+ description: 'PostgreSQL connection string for validator HA signer (format: postgresql://user:password@host:port/database)'
47
+ },
48
+ poolMaxCount: {
49
+ env: 'VALIDATOR_HA_POOL_MAX',
50
+ description: 'Maximum number of clients in the pool',
51
+ ...numberConfigHelper(10)
52
+ },
53
+ poolMinCount: {
54
+ env: 'VALIDATOR_HA_POOL_MIN',
55
+ description: 'Minimum number of clients in the pool',
56
+ ...numberConfigHelper(0)
57
+ },
58
+ poolIdleTimeoutMs: {
59
+ env: 'VALIDATOR_HA_POOL_IDLE_TIMEOUT_MS',
60
+ description: 'Idle timeout in milliseconds',
61
+ ...numberConfigHelper(10_000)
62
+ },
63
+ poolConnectionTimeoutMs: {
64
+ env: 'VALIDATOR_HA_POOL_CONNECTION_TIMEOUT_MS',
65
+ description: 'Connection timeout in milliseconds (0 means no timeout)',
66
+ ...numberConfigHelper(0)
67
+ }
68
+ };
69
+ export const defaultValidatorHASignerConfig = getDefaultConfig(validatorHASignerConfigMappings);
70
+ /**
71
+ * Returns the validator HA signer configuration from environment variables.
72
+ * Note: If an environment variable is not set, the default value is used.
73
+ * @returns The validator HA signer configuration.
74
+ */ export function getConfigEnvVars() {
75
+ return getConfigFromMappings(validatorHASignerConfigMappings);
76
+ }
77
+ export const ValidatorHASignerConfigSchema = z.object({
78
+ haSigningEnabled: z.boolean(),
79
+ l1Contracts: z.object({
80
+ rollupAddress: z.instanceof(EthAddress)
81
+ }),
82
+ nodeId: z.string(),
83
+ pollingIntervalMs: z.number().min(0),
84
+ signingTimeoutMs: z.number().min(0),
85
+ maxStuckDutiesAgeMs: z.number().min(0).optional(),
86
+ cleanupOldDutiesAfterHours: z.number().min(0).optional(),
87
+ databaseUrl: z.string().optional(),
88
+ poolMaxCount: z.number().min(0).optional(),
89
+ poolMinCount: z.number().min(0).optional(),
90
+ poolIdleTimeoutMs: z.number().min(0).optional(),
91
+ poolConnectionTimeoutMs: z.number().min(0).optional()
92
+ });
@@ -0,0 +1,3 @@
1
+ export { type ValidatorHASignerConfig, ValidatorHASignerConfigSchema, defaultValidatorHASignerConfig, getConfigEnvVars, validatorHASignerConfigMappings, } from './config.js';
2
+ export { DutyType, type BlockProposalSigningContext, type HAProtectedSigningContext, type NoHAProtectionSigningContext, type OtherSigningContext, type SigningContext, type VoteSigningContext, getBlockNumberFromSigningContext, isHAProtectedContext, } from './types.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYS1zaWduaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLHVCQUF1QixFQUM1Qiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLGdCQUFnQixFQUNoQiwrQkFBK0IsR0FDaEMsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLFFBQVEsRUFDUixLQUFLLDJCQUEyQixFQUNoQyxLQUFLLHlCQUF5QixFQUM5QixLQUFLLDRCQUE0QixFQUNqQyxLQUFLLG1CQUFtQixFQUN4QixLQUFLLGNBQWMsRUFDbkIsS0FBSyxrQkFBa0IsRUFDdkIsZ0NBQWdDLEVBQ2hDLG9CQUFvQixHQUNyQixNQUFNLFlBQVksQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ha-signing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,gCAAgC,EAChC,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ValidatorHASignerConfigSchema, defaultValidatorHASignerConfig, getConfigEnvVars, validatorHASignerConfigMappings } from './config.js';
2
+ export { DutyType, getBlockNumberFromSigningContext, isHAProtectedContext } from './types.js';