@@ -77,6 +77,9 @@ pub mod pallet {
7777
7878 #[ pallet:: config]
7979 pub trait Config < I : ' static = ( ) > : frame_system:: Config {
80+ /// The overarching event type.
81+ type RuntimeEvent : From < Event < Self , I > >
82+ + IsType < <Self as frame_system:: Config >:: RuntimeEvent > ;
8083 /// Benchmarks results from runtime we're plugged into.
8184 type WeightInfo : WeightInfo ;
8285
@@ -134,6 +137,10 @@ pub mod pallet {
134137 previous_factor,
135138 delivery_fee_factor,
136139 ) ;
140+ Self :: deposit_event ( Event :: DeliveryFeeFactorDecreased {
141+ new_value : delivery_fee_factor,
142+ } ) ;
143+
137144 DeliveryFeeFactor :: < T , I > :: put ( delivery_fee_factor) ;
138145
139146 T :: WeightInfo :: on_initialize_when_non_congested ( )
@@ -202,10 +209,26 @@ pub mod pallet {
202209 previous_factor,
203210 f,
204211 ) ;
212+ Self :: deposit_event ( Event :: DeliveryFeeFactorIncreased { new_value : * f } ) ;
205213 * f
206214 } ) ;
207215 }
208216 }
217+
218+ #[ pallet:: event]
219+ #[ pallet:: generate_deposit( pub ( super ) fn deposit_event) ]
220+ pub enum Event < T : Config < I > , I : ' static = ( ) > {
221+ /// Delivery fee factor has been decreased.
222+ DeliveryFeeFactorDecreased {
223+ /// New value of the `DeliveryFeeFactor`.
224+ new_value : FixedU128 ,
225+ } ,
226+ /// Delivery fee factor has been increased.
227+ DeliveryFeeFactorIncreased {
228+ /// New value of the `DeliveryFeeFactor`.
229+ new_value : FixedU128 ,
230+ } ,
231+ }
209232}
210233
211234/// We'll be using `SovereignPaidRemoteExporter` to send remote messages over the sibling/child
@@ -399,6 +422,7 @@ mod tests {
399422 use mock:: * ;
400423
401424 use frame_support:: traits:: Hooks ;
425+ use frame_system:: { EventRecord , Phase } ;
402426 use sp_runtime:: traits:: One ;
403427
404428 #[ test]
@@ -418,13 +442,16 @@ mod tests {
418442 let old_delivery_fee_factor = XcmBridgeHubRouter :: delivery_fee_factor ( ) ;
419443 XcmBridgeHubRouter :: on_initialize ( One :: one ( ) ) ;
420444 assert_eq ! ( XcmBridgeHubRouter :: delivery_fee_factor( ) , old_delivery_fee_factor) ;
445+
446+ assert_eq ! ( System :: events( ) , vec![ ] ) ;
421447 } )
422448 }
423449
424450 #[ test]
425451 fn fee_factor_is_decreased_from_on_initialize_when_xcm_channel_is_uncongested ( ) {
426452 run_test ( || {
427- DeliveryFeeFactor :: < TestRuntime , ( ) > :: put ( FixedU128 :: from_rational ( 125 , 100 ) ) ;
453+ let initial_fee_factor = FixedU128 :: from_rational ( 125 , 100 ) ;
454+ DeliveryFeeFactor :: < TestRuntime , ( ) > :: put ( initial_fee_factor) ;
428455
429456 // it shold eventually decreased to one
430457 while XcmBridgeHubRouter :: delivery_fee_factor ( ) > MINIMAL_DELIVERY_FEE_FACTOR {
@@ -434,6 +461,19 @@ mod tests {
434461 // verify that it doesn't decreases anymore
435462 XcmBridgeHubRouter :: on_initialize ( One :: one ( ) ) ;
436463 assert_eq ! ( XcmBridgeHubRouter :: delivery_fee_factor( ) , MINIMAL_DELIVERY_FEE_FACTOR ) ;
464+
465+ // check emitted event
466+ let first_system_event = System :: events ( ) . first ( ) . cloned ( ) ;
467+ assert_eq ! (
468+ first_system_event,
469+ Some ( EventRecord {
470+ phase: Phase :: Initialization ,
471+ event: RuntimeEvent :: XcmBridgeHubRouter ( Event :: DeliveryFeeFactorDecreased {
472+ new_value: initial_fee_factor / EXPONENTIAL_FEE_BASE ,
473+ } ) ,
474+ topics: vec![ ] ,
475+ } )
476+ ) ;
437477 } )
438478 }
439479
@@ -568,6 +608,8 @@ mod tests {
568608
569609 assert ! ( TestToBridgeHubSender :: is_message_sent( ) ) ;
570610 assert_eq ! ( old_delivery_fee_factor, XcmBridgeHubRouter :: delivery_fee_factor( ) ) ;
611+
612+ assert_eq ! ( System :: events( ) , vec![ ] ) ;
571613 } ) ;
572614 }
573615
@@ -585,6 +627,19 @@ mod tests {
585627
586628 assert ! ( TestToBridgeHubSender :: is_message_sent( ) ) ;
587629 assert ! ( old_delivery_fee_factor < XcmBridgeHubRouter :: delivery_fee_factor( ) ) ;
630+
631+ // check emitted event
632+ let first_system_event = System :: events ( ) . first ( ) . cloned ( ) ;
633+ assert ! ( matches!(
634+ first_system_event,
635+ Some ( EventRecord {
636+ phase: Phase :: Initialization ,
637+ event: RuntimeEvent :: XcmBridgeHubRouter (
638+ Event :: DeliveryFeeFactorIncreased { .. }
639+ ) ,
640+ ..
641+ } )
642+ ) ) ;
588643 } ) ;
589644 }
590645
0 commit comments