I have a local-rococo setup between parachain 3015
(sender) and parachain 2000
(recipient). I was able to send hrmpInitOpenChannel
successfully to the recipient, followed by hrmpAcceptOpenChannel
The recipient parachain happily accepts the hrmpAcceptOpenChannel
request, but sender parachain fails right after the HrmpChannelAccepted
event with Unimplemented error
.
The log trace snippet below is telling part of the story, I appreciate it if there are any pointers here on where would be the next place to look.
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::execute_xcm_in_credit: origin: MultiLocation { parents: 1, interior: Here }, message: Xcm([HrmpChannelAccepted { recipient: 2000 }]), weight_limit: 500000000000, weight_credit: 0
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::weight: FixedWeightBounds message: Xcm([HrmpChannelAccepted { recipient: 2000 }])
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::barriers: TakeWeightCredit origin: MultiLocation { parents: 1, interior: Here }, message: Xcm([HrmpChannelAccepted { recipient: 2000 }]), max_weight: 1000000000, weight_credit: 0
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::barriers: AllowTopLevelPaidExecutionFrom origin: MultiLocation { parents: 1, interior: Here }, message: Xcm([HrmpChannelAccepted { recipient: 2000 }]), max_weight: 1000000000, weight_credit: 0
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::barriers: AllowUnpaidExecutionFrom origin: MultiLocation { parents: 1, interior: Here }, message: Xcm([HrmpChannelAccepted { recipient: 2000 }]), max_weight: 1000000000, weight_credit: 0
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::execute: origin: Some(MultiLocation { parents: 1, interior: Here }), total_surplus/refunded: 0/0, error_handler_weight: 0
2022-07-01 19:40:00.027 TRACE tokio-runtime-worker xcm::execute_xcm_in_credit: result: Err(ExecutorError { index: 0, xcm_error: Unimplemented, weight: 0 })
2022-07-01 19:40:00.027 DEBUG tokio-runtime-worker xcm::execute_xcm_in_credit: Execution errored at 0: Unimplemented (original_origin: MultiLocation { parents: 1, interior: Here })
For more context: the first step is to submit polkadotXcm.send
Rococo encoded hrmpInitOpenChannel
extrinsic via the sender (3015) which in turn submits an upward message to Rococo
Checking hrmpOpenChannelRequestCount
, appears to have executed as expected, there is 1 open request for 3015.
In the second step to accept the request, the encoded hrmpAcceptOpenChannel
extrinsic is submitted via the recipient (2000) -- and it appears to have executed successfully on Rococo as seen from the snippet below:
Here is the script I use to perform the above operations.