From 3342ec2c0dbcbc11631b1f3c33ff169ad3da76b0 Mon Sep 17 00:00:00 2001 From: bizzy Date: Fri, 20 May 2022 14:14:04 +0100 Subject: [PATCH 1/3] bridges-dispatch --- bridges/modules/dispatch/src/lib.rs | 192 ++++++++++++++++------------ 1 file changed, 108 insertions(+), 84 deletions(-) diff --git a/bridges/modules/dispatch/src/lib.rs b/bridges/modules/dispatch/src/lib.rs index 1e030b733205..1cff6bceeddc 100644 --- a/bridges/modules/dispatch/src/lib.rs +++ b/bridges/modules/dispatch/src/lib.rs @@ -111,30 +111,42 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event, I: 'static = ()> { /// Message has been rejected before reaching dispatch. - MessageRejected(ChainId, BridgeMessageIdOf), + MessageRejected { source_chain: ChainId, id: BridgeMessageIdOf }, /// Message has been rejected by dispatcher because of spec version mismatch. - /// Last two arguments are: expected and passed spec version. - MessageVersionSpecMismatch(ChainId, BridgeMessageIdOf, SpecVersion, SpecVersion), + MessageVersionSpecMismatch { + source_chain: ChainId, + id: BridgeMessageIdOf, + expected_version: SpecVersion, + passed_version: SpecVersion, + }, /// Message has been rejected by dispatcher because of weight mismatch. - /// Last two arguments are: expected and passed call weight. - MessageWeightMismatch(ChainId, BridgeMessageIdOf, Weight, Weight), + MessageWeightMismatch { + source_chain: ChainId, + id: BridgeMessageIdOf, + expected_weight: Weight, + passed_weight: Weight, + }, /// Message signature mismatch. - MessageSignatureMismatch(ChainId, BridgeMessageIdOf), + MessageSignatureMismatch { source_chain: ChainId, id: BridgeMessageIdOf }, /// We have failed to decode Call from the message. - MessageCallDecodeFailed(ChainId, BridgeMessageIdOf), + MessageCallDecodeFailed { source_chain: ChainId, id: BridgeMessageIdOf }, /// The call from the message has been rejected by the call filter. - MessageCallRejected(ChainId, BridgeMessageIdOf), + MessageCallRejected { source_chain: ChainId, id: BridgeMessageIdOf }, /// The origin account has failed to pay fee for dispatching the message. - MessageDispatchPaymentFailed( - ChainId, - BridgeMessageIdOf, - ::AccountId, - Weight, - ), + MessageDispatchPaymentFailed { + source_chain: ChainId, + id: BridgeMessageIdOf, + origin_account: ::AccountId, + weight: Weight, + }, /// Message has been dispatched with given result. - MessageDispatched(ChainId, BridgeMessageIdOf, DispatchResult), + MessageDispatched { + source_chain: ChainId, + id: BridgeMessageIdOf, + result: DispatchResult, + }, /// Phantom member, never used. Needed to handle multiple pallet instances. - _Dummy(PhantomData), + _Dummy { phantom_member: PhantomData }, } } @@ -167,7 +179,7 @@ impl, I: 'static> MessageDispatch source_chain, id, ); - Self::deposit_event(Event::MessageRejected(source_chain, id)); + Self::deposit_event(Event::MessageRejected { source_chain, id }); return MessageDispatchResult { dispatch_result: false, unspent_weight: 0, @@ -192,12 +204,12 @@ impl, I: 'static> MessageDispatch expected_version, message.spec_version, ); - Self::deposit_event(Event::MessageVersionSpecMismatch( + Self::deposit_event(Event::MessageVersionSpecMismatch { source_chain, id, expected_version, - message.spec_version, - )); + passed_version: message.spec_version, + }); return dispatch_result } @@ -211,7 +223,7 @@ impl, I: 'static> MessageDispatch source_chain, id, ); - Self::deposit_event(Event::MessageCallDecodeFailed(source_chain, id)); + Self::deposit_event(Event::MessageCallDecodeFailed { source_chain, id }); return dispatch_result }, }; @@ -244,7 +256,7 @@ impl, I: 'static> MessageDispatch target_account, target_signature, ); - Self::deposit_event(Event::MessageSignatureMismatch(source_chain, id)); + Self::deposit_event(Event::MessageSignatureMismatch { source_chain, id }); return dispatch_result } @@ -269,7 +281,7 @@ impl, I: 'static> MessageDispatch id, call, ); - Self::deposit_event(Event::MessageCallRejected(source_chain, id)); + Self::deposit_event(Event::MessageCallRejected { source_chain, id }); return dispatch_result } @@ -287,12 +299,12 @@ impl, I: 'static> MessageDispatch expected_weight, message.weight, ); - Self::deposit_event(Event::MessageWeightMismatch( + Self::deposit_event(Event::MessageWeightMismatch { source_chain, id, expected_weight, - message.weight, - )); + passed_weight: message.weight, + }); return dispatch_result } @@ -309,12 +321,12 @@ impl, I: 'static> MessageDispatch id, message.weight, ); - Self::deposit_event(Event::MessageDispatchPaymentFailed( + Self::deposit_event(Event::MessageDispatchPaymentFailed { source_chain, id, origin_account, - message.weight, - )); + weight: message.weight, + }); return dispatch_result } dispatch_result.dispatch_fee_paid_during_dispatch = pay_dispatch_fee_at_target_chain; @@ -339,11 +351,11 @@ impl, I: 'static> MessageDispatch result, ); - Self::deposit_event(Event::MessageDispatched( + Self::deposit_event(Event::MessageDispatched { source_chain, id, - result.map(drop).map_err(|e| e.error), - )); + result: result.map(drop).map_err(|e| e.error), + }); dispatch_result } @@ -632,12 +644,12 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageVersionSpecMismatch( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageVersionSpecMismatch { + source_chain: SOURCE_CHAIN_ID, id, - TEST_SPEC_VERSION, - BAD_SPEC_VERSION - ) + expected_version: TEST_SPEC_VERSION, + passed_version: BAD_SPEC_VERSION + } ), topics: vec![], }], @@ -671,12 +683,12 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageWeightMismatch( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageWeightMismatch { + source_chain: SOURCE_CHAIN_ID, id, - call_weight, - 7, - ) + expected_weight: call_weight, + passed_weight: 7, + } ), topics: vec![], }], @@ -712,10 +724,10 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageSignatureMismatch( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageSignatureMismatch { + source_chain: SOURCE_CHAIN_ID, id - ) + } ), topics: vec![], }], @@ -741,10 +753,10 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageRejected( - SOURCE_CHAIN_ID, + event: Event::Dispatch(call_dispatch::Event::::MessageRejected { + source_chain: SOURCE_CHAIN_ID, id - )), + }), topics: vec![], }], ); @@ -778,10 +790,10 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageCallDecodeFailed( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageCallDecodeFailed { + source_chain: SOURCE_CHAIN_ID, id - ) + } ), topics: vec![], }], @@ -816,10 +828,10 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageCallRejected( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageCallRejected { + source_chain: SOURCE_CHAIN_ID, id - ) + } ), topics: vec![], }], @@ -851,15 +863,17 @@ mod tests { vec![EventRecord { phase: Phase::Initialization, event: Event::Dispatch( - call_dispatch::Event::::MessageDispatchPaymentFailed( - SOURCE_CHAIN_ID, + call_dispatch::Event::::MessageDispatchPaymentFailed { + source_chain: SOURCE_CHAIN_ID, id, - AccountIdConverter::convert(derive_account_id::( + origin_account: AccountIdConverter::convert(derive_account_id::< + AccountId, + >( SOURCE_CHAIN_ID, SourceAccount::Root )), - TEST_WEIGHT, - ) + weight: TEST_WEIGHT, + } ), topics: vec![], }], @@ -892,11 +906,13 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageDispatched( - SOURCE_CHAIN_ID, - id, - Ok(()) - )), + event: Event::Dispatch( + call_dispatch::Event::::MessageDispatched { + source_chain: SOURCE_CHAIN_ID, + id, + result: Ok(()) + } + ), topics: vec![], }], ); @@ -926,11 +942,13 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageDispatched( - SOURCE_CHAIN_ID, - id, - Err(sp_runtime::DispatchError::BadOrigin) - )), + event: Event::Dispatch( + call_dispatch::Event::::MessageDispatched { + source_chain: SOURCE_CHAIN_ID, + id, + result: Err(sp_runtime::DispatchError::BadOrigin) + } + ), topics: vec![], }], ); @@ -960,11 +978,13 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageDispatched( - SOURCE_CHAIN_ID, - id, - Ok(()) - )), + event: Event::Dispatch( + call_dispatch::Event::::MessageDispatched { + source_chain: SOURCE_CHAIN_ID, + id, + result: Ok(()) + } + ), topics: vec![], }], ); @@ -994,11 +1014,13 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageDispatched( - SOURCE_CHAIN_ID, - id, - Ok(()) - )), + event: Event::Dispatch( + call_dispatch::Event::::MessageDispatched { + source_chain: SOURCE_CHAIN_ID, + id, + result: Ok(()) + } + ), topics: vec![], }], ); @@ -1028,11 +1050,13 @@ mod tests { System::events(), vec![EventRecord { phase: Phase::Initialization, - event: Event::Dispatch(call_dispatch::Event::::MessageDispatched( - SOURCE_CHAIN_ID, - id, - Ok(()) - )), + event: Event::Dispatch( + call_dispatch::Event::::MessageDispatched { + source_chain: SOURCE_CHAIN_ID, + id, + result: Ok(()) + } + ), topics: vec![], }], ); From a8b3d8d73e93b029b38269becdbf103e439c1ced Mon Sep 17 00:00:00 2001 From: bizzy Date: Fri, 20 May 2022 14:28:48 +0100 Subject: [PATCH 2/3] bridges-messages --- bridges/modules/messages/src/lib.rs | 32 +++++++++++++++++------------ 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/bridges/modules/messages/src/lib.rs b/bridges/modules/messages/src/lib.rs index 9f5f9d438c41..c13e515cebe0 100644 --- a/bridges/modules/messages/src/lib.rs +++ b/bridges/modules/messages/src/lib.rs @@ -266,7 +266,7 @@ pub mod pallet { ) -> DispatchResult { ensure_owner_or_root::(origin)?; parameter.save(); - Self::deposit_event(Event::ParameterUpdated(parameter)); + Self::deposit_event(Event::ParameterUpdated { parameter }); Ok(()) } @@ -622,7 +622,10 @@ pub mod pallet { // emit 'delivered' event let received_range = confirmed_messages.begin..=confirmed_messages.end; - Self::deposit_event(Event::MessagesDelivered(lane_id, confirmed_messages)); + Self::deposit_event(Event::MessagesDelivered { + lane_id, + messages: confirmed_messages, + }); // if some new messages have been confirmed, reward relayers let relayer_fund_account = @@ -651,11 +654,11 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event, I: 'static = ()> { /// Pallet parameter has been updated. - ParameterUpdated(T::Parameter), + ParameterUpdated { parameter: T::Parameter }, /// Message has been accepted and is waiting to be delivered. - MessageAccepted(LaneId, MessageNonce), + MessageAccepted { lane_id: LaneId, nonce: MessageNonce }, /// Messages in the inclusive range have been delivered to the bridged chain. - MessagesDelivered(LaneId, DeliveredMessages), + MessagesDelivered { lane_id: LaneId, messages: DeliveredMessages }, } #[pallet::error] @@ -916,7 +919,7 @@ fn send_message, I: 'static>( encoded_payload_len, ); - Pallet::::deposit_event(Event::MessageAccepted(lane_id, nonce)); + Pallet::::deposit_event(Event::MessageAccepted { lane_id, nonce }); Ok(SendMessageArtifacts { nonce, weight: actual_weight }) } @@ -1142,7 +1145,10 @@ mod tests { System::::events(), vec![EventRecord { phase: Phase::Initialization, - event: TestEvent::Messages(Event::MessageAccepted(TEST_LANE_ID, message_nonce)), + event: TestEvent::Messages(Event::MessageAccepted { + lane_id: TEST_LANE_ID, + nonce: message_nonce, + }), topics: vec![], }], ); @@ -1185,10 +1191,10 @@ mod tests { System::::events(), vec![EventRecord { phase: Phase::Initialization, - event: TestEvent::Messages(Event::MessagesDelivered( - TEST_LANE_ID, - DeliveredMessages::new(1, true), - )), + event: TestEvent::Messages(Event::MessagesDelivered { + lane_id: TEST_LANE_ID, + messages: DeliveredMessages::new(1, true), + }), topics: vec![], }], ); @@ -1289,7 +1295,7 @@ mod tests { System::::events(), vec![EventRecord { phase: Phase::Initialization, - event: TestEvent::Messages(Event::ParameterUpdated(parameter)), + event: TestEvent::Messages(Event::ParameterUpdated { parameter }), topics: vec![], }], ); @@ -1313,7 +1319,7 @@ mod tests { System::::events(), vec![EventRecord { phase: Phase::Initialization, - event: TestEvent::Messages(Event::ParameterUpdated(parameter)), + event: TestEvent::Messages(Event::ParameterUpdated { parameter }), topics: vec![], }], ); From 4e26411ea036e993c6151a7f5822e8e298cf6dd5 Mon Sep 17 00:00:00 2001 From: bizzy Date: Fri, 20 May 2022 14:34:56 +0100 Subject: [PATCH 3/3] bridges-token-swap --- bridges/modules/token-swap/src/lib.rs | 31 ++++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/bridges/modules/token-swap/src/lib.rs b/bridges/modules/token-swap/src/lib.rs index e46a4bc2dd03..8a6d48ef7ca7 100644 --- a/bridges/modules/token-swap/src/lib.rs +++ b/bridges/modules/token-swap/src/lib.rs @@ -401,7 +401,10 @@ pub mod pallet { PendingMessages::::insert(sent_message.nonce, swap_hash); // finally - emit the event - Self::deposit_event(Event::SwapStarted(swap_hash, sent_message.nonce)); + Self::deposit_event(Event::SwapStarted { + swap_hash, + message_nonce: sent_message.nonce + }); sp_runtime::TransactionOutcome::Commit(Ok(sent_message.weight)) })?; @@ -448,7 +451,7 @@ pub mod pallet { None => fail!(Error::::SwapIsInactive), } - complete_claim::(swap, swap_hash, origin_account, Event::SwapClaimed(swap_hash)) + complete_claim::(swap, swap_hash, origin_account, Event::SwapClaimed { swap_hash }) } /// Return previously reserved `source_balance_at_this_chain` back to the @@ -483,7 +486,7 @@ pub mod pallet { None => fail!(Error::::SwapIsInactive), } - complete_claim::(swap, swap_hash, origin_account, Event::SwapCanceled(swap_hash)) + complete_claim::(swap, swap_hash, origin_account, Event::SwapCanceled { swap_hash }) } } @@ -491,13 +494,11 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event, I: 'static = ()> { /// Tokens swap has been started and message has been sent to the bridged message. - /// - /// The payload is the swap hash and the transfer message nonce. - SwapStarted(H256, MessageNonce), + SwapStarted { swap_hash: H256, message_nonce: MessageNonce }, /// Token swap has been claimed. - SwapClaimed(H256), + SwapClaimed { swap_hash: H256 }, /// Token swap has been canceled. - SwapCanceled(H256), + SwapCanceled { swap_hash: H256 }, } #[pallet::error] @@ -646,8 +647,8 @@ pub mod pallet { swap, swap_hash, match event { - Event::SwapClaimed(_) => "claimed", - Event::SwapCanceled(_) => "canceled", + Event::SwapClaimed { swap_hash: _ } => "claimed", + Event::SwapCanceled { swap_hash: _ } => "canceled", _ => "", }, ); @@ -870,10 +871,10 @@ mod tests { ); assert!( frame_system::Pallet::::events().iter().any(|e| e.event == - crate::mock::Event::TokenSwap(crate::Event::SwapStarted( + crate::mock::Event::TokenSwap(crate::Event::SwapStarted { swap_hash, - MESSAGE_NONCE, - ))), + message_nonce: MESSAGE_NONCE, + })), "Missing SwapStarted event: {:?}", frame_system::Pallet::::events(), ); @@ -1013,7 +1014,7 @@ mod tests { ); assert!( frame_system::Pallet::::events().iter().any(|e| e.event == - crate::mock::Event::TokenSwap(crate::Event::SwapClaimed(swap_hash,))), + crate::mock::Event::TokenSwap(crate::Event::SwapClaimed { swap_hash })), "Missing SwapClaimed event: {:?}", frame_system::Pallet::::events(), ); @@ -1129,7 +1130,7 @@ mod tests { ); assert!( frame_system::Pallet::::events().iter().any(|e| e.event == - crate::mock::Event::TokenSwap(crate::Event::SwapCanceled(swap_hash,))), + crate::mock::Event::TokenSwap(crate::Event::SwapCanceled { swap_hash })), "Missing SwapCanceled event: {:?}", frame_system::Pallet::::events(), );