forked from paritytech/cumulus
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
cumulus:
4cdf87d
rococo:
yrong/polkadot@b70b0af
the core logic in parachain side is wrap a transact xcm to invoke test pallet function in relaychain as following:
cumulus/rococo-parachains/pallets/ping/src/lib.rs
Lines 135 to 171 in 4cdf87d
| log::info!( | |
| target: "ping", | |
| "Begin construct relay transact" | |
| ); | |
| let some_value:u32 = 10; | |
| let call = RelayTemplatePalletCall::DoSomething(DoSomethingCall::Something(some_value)).encode(); | |
| let msg = Xcm::Transact { | |
| origin_type: OriginKind::SovereignAccount, | |
| require_weight_at_most: 1_000, | |
| call:call.into(), | |
| }; | |
| log::info!( | |
| target: "ping", | |
| "Relay transact {:?}", | |
| msg, | |
| ); | |
| match T::XcmSender::send_xcm(MultiLocation::X1(Junction::Parent), msg){ | |
| Ok(()) => { | |
| Self::deposit_event(Event::TestMsg(some_value)); | |
| log::info!( | |
| target: "ping", | |
| "Relay transact sent success!" | |
| ); | |
| }, | |
| Err(e) => { | |
| Self::deposit_event(Event::ErrorSendingTest()); | |
| log::error!( | |
| target: "ping", | |
| "Relay transact sent failed!" | |
| ); | |
| } | |
| } | |
| } | |
| } |
from parachain log we can see:
2021-05-16 16:01:48 [Parachain] Begin construct relay transact
2021-05-16 16:01:48 [Parachain] Relay transact Transact { origin_type: Native, require_weight_at_most: 1000, call: [100, 0, 10, 0, 0, 0] }
2021-05-16 16:01:48 [Parachain] Relay transact sent success!
2021-05-16 16:01:50 [Relaychain] 💤 Idle (4 peers), best: #939 (0xdc19…668f), finalized #936 (0xee40…7ea9), ⬇ 0.9kiB/s ⬆ 3.4kiB/s
2021-05-16 16:01:50 [Parachain] 💤 Idle (0 peers), best: #299 (0x91c2…12b2), finalized #297 (0xd553…92a3), ⬇ 0 ⬆ 0
which demonstrate parachain is successfully registered to relay chain and transact are wrapped and sent successfully
the relay chain pallet will update storage and emit event as following:
from relay chain event we can see:
which demonstrate relaychain finish the dispatch call successfully
Metadata
Metadata
Assignees
Labels
No labels
