@@ -347,6 +347,12 @@ pub struct ClementineConfig<E: Debug + Clone + ClementineEntityConfig> {
347
347
/// Security council.
348
348
pub security_council : SecurityCouncil ,
349
349
350
+ /// The ECDSA address of the citrea/aggregator that will sign the withdrawal params
351
+ /// after manual verification of the optimistic payout and operator's withdrawal.
352
+ /// Used for both an extra verification of aggregator's identity and to force citrea
353
+ /// to check withdrawal params manually during some time after launch.
354
+ pub aggregator_verification_address : Option < alloy_primitives:: Address > ,
355
+
350
356
/// The X25519 public key that will be used to encrypt the emergency stop message.
351
357
pub emergency_stop_encryption_public_key : Option < [ u8 ; 32 ] > ,
352
358
@@ -450,6 +456,9 @@ impl<E: ClementineEntityConfig> Default for ClementineConfig<E> {
450
456
451
457
telemetry : Some ( TelemetryConfig :: default ( ) ) ,
452
458
459
+ // This defaults to a fixed key in Clementine
460
+ aggregator_verification_address : None ,
461
+
453
462
entity_config : E :: default ( ) ,
454
463
455
464
log_dir : TempDir :: new ( )
@@ -466,6 +475,11 @@ impl<E: ClementineEntityConfig> Default for ClementineConfig<E> {
466
475
}
467
476
468
477
impl < E : ClementineEntityConfig + ' static > ClementineConfig < E > {
478
+ pub fn with_aggregator_verification ( mut self , address : alloy_primitives:: Address ) -> Self {
479
+ self . aggregator_verification_address = Some ( address) ;
480
+ self
481
+ }
482
+
469
483
/// Uses other configs to generate a ClementineConfig for the given entity type.
470
484
///
471
485
/// Matches the AggregatorConfig type to determine if the entity is an
0 commit comments