git.delta.rocks / unique-network / refs/commits / e9466c403549

difftreelog

fix handle bad origin in scheduler

Daniel Shiposha2022-10-12parent: #9427569.patch.diff
in: master

1 file changed

modifiedpallets/scheduler/src/lib.rsdiffbeforeafterboth
457 let scheduled_origin =457 let scheduled_origin =
458 <<T as Config>::RuntimeOrigin as From<T::PalletsOrigin>>::from(s.origin.clone());458 <<T as Config>::RuntimeOrigin as From<T::PalletsOrigin>>::from(s.origin.clone());
459 let ensured_origin =459 let ensured_origin =
460 T::ScheduleOrigin::ensure_origin(scheduled_origin.into()).unwrap();460 T::ScheduleOrigin::ensure_origin(scheduled_origin.into());
461461
462 let r = match ensured_origin {462 let r = match ensured_origin {
463 ScheduledEnsureOriginSuccess::Root => {463 Ok(ScheduledEnsureOriginSuccess::Root) => {
464 Ok(call.dispatch_bypass_filter(frame_system::RawOrigin::Root.into()))464 Ok(call.dispatch_bypass_filter(frame_system::RawOrigin::Root.into()))
465 }465 }
466 ScheduledEnsureOriginSuccess::Signed(sender) => {466 Ok(ScheduledEnsureOriginSuccess::Signed(sender)) => {
467 // Execute transaction via chain default pipeline467 // Execute transaction via chain default pipeline
468 // That means dispatch will be processed like any user's extrinsic e.g. transaction fees will be taken468 // That means dispatch will be processed like any user's extrinsic e.g. transaction fees will be taken
469 T::CallExecutor::dispatch_call(Some(sender), call.clone())469 T::CallExecutor::dispatch_call(Some(sender), call.clone())
470 }470 }
471 ScheduledEnsureOriginSuccess::Unsigned => {471 Ok(ScheduledEnsureOriginSuccess::Unsigned) => {
472 // Unsigned version of the above472 // Unsigned version of the above
473 T::CallExecutor::dispatch_call(None, call.clone())473 T::CallExecutor::dispatch_call(None, call.clone())
474 }474 },
475 Err(e) => Ok(Err(e.into())),
475 };476 };
476477
477 let mut actual_call_weight: Weight = item_weight;478 let mut actual_call_weight: Weight = item_weight;