diff --git a/state-chain/pallets/cf-broadcast/src/lib.rs b/state-chain/pallets/cf-broadcast/src/lib.rs index 136a560f79..7c8b8c3759 100644 --- a/state-chain/pallets/cf-broadcast/src/lib.rs +++ b/state-chain/pallets/cf-broadcast/src/lib.rs @@ -328,7 +328,7 @@ pub mod pallet { transaction_out_id: TransactionOutIdFor, }, /// A broadcast's threshold signature is invalid, we will attempt to re-sign it. - ThresholdSignatureInvalid { broadcast_id: BroadcastId }, + ThresholdSignatureInvalid { broadcast_id: BroadcastId, retry_broadcast_id: BroadcastId }, /// A signature accepted event on the target chain has been witnessed and the callback was /// executed. BroadcastCallbackExecuted { broadcast_id: BroadcastId, result: DispatchResult }, @@ -794,7 +794,7 @@ impl, I: 'static> Pallet { // to retry from the threshold signing stage. else { Self::clean_up_broadcast_storage(broadcast_id); - Self::threshold_sign_and_broadcast( + let (retry_broadcast_id, _) = Self::threshold_sign_and_broadcast( api_call, RequestCallbacks::::get(broadcast_id), ); @@ -802,7 +802,10 @@ impl, I: 'static> Pallet { "Signature is invalid -> rescheduled threshold signature for broadcast id {}.", broadcast_id ); - Self::deposit_event(Event::::ThresholdSignatureInvalid { broadcast_id }); + Self::deposit_event(Event::::ThresholdSignatureInvalid { + broadcast_id, + retry_broadcast_id, + }); } } else { log::error!("No threshold signature data is available.");