Skip to content

Commit

Permalink
allow HRMPOpenOrigin to accept HRMP channels
Browse files Browse the repository at this point in the history
  • Loading branch information
noandrea committed Apr 5, 2024
1 parent be93dc8 commit cfdc0f2
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions pallets/xcm-transactor/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -869,35 +869,39 @@ pub mod pallet {
// SetAppendix(RefundSurplus, DepositAsset(sov account))
// Transact

if let HrmpOperation::InitOpen(_) = &action {
<EitherOfDiverse<T::HrmpManipulatorOrigin, T::HrmpOpenOrigin>>::ensure_origin(
origin,
)?;
} else {
T::HrmpManipulatorOrigin::ensure_origin(origin)?;
}

let call_bytes = match action.clone() {
HrmpOperation::InitOpen(params) => {
// allowed from The HRMP Open origin
<EitherOfDiverse<T::HrmpManipulatorOrigin, T::HrmpOpenOrigin>>::ensure_origin(
origin,
)?;
Self::hrmp_encode_call(HrmpAvailableCalls::InitOpenChannel(
params.para_id,
params.proposed_max_capacity,
params.proposed_max_message_size,
))
}
HrmpOperation::Accept { para_id } => {
// allowed from The HRMP Open origin
<EitherOfDiverse<T::HrmpManipulatorOrigin, T::HrmpOpenOrigin>>::ensure_origin(
origin,
)?;
Self::hrmp_encode_call(HrmpAvailableCalls::AcceptOpenChannel(para_id))
}
HrmpOperation::Close(close_params) => {
T::HrmpManipulatorOrigin::ensure_origin(origin)?;
Self::hrmp_encode_call(HrmpAvailableCalls::CloseChannel(close_params))
}
HrmpOperation::Cancel {
channel_id,
open_requests,
} => Self::hrmp_encode_call(HrmpAvailableCalls::CancelOpenRequest(
channel_id,
open_requests,
)),
} => {
T::HrmpManipulatorOrigin::ensure_origin(origin)?;
Self::hrmp_encode_call(HrmpAvailableCalls::CancelOpenRequest(
channel_id,
open_requests,
))
}
}
.map_err(|_| Error::<T>::HrmpHandlerNotImplemented)?;

Expand Down

0 comments on commit cfdc0f2

Please sign in to comment.