referrerpolicy=no-referrer-when-downgrade
polkadot_sdk_frame::traits

Trait EnsureOrigin

pub trait EnsureOrigin<OuterOrigin> {
    type Success;

    // Required methods
    fn try_origin(o: OuterOrigin) -> Result<Self::Success, OuterOrigin>;
    fn try_successful_origin() -> Result<OuterOrigin, ()>;

    // Provided methods
    fn ensure_origin(o: OuterOrigin) -> Result<Self::Success, BadOrigin> { ... }
    fn ensure_origin_or_root(
        o: OuterOrigin,
    ) -> Result<Option<Self::Success>, BadOrigin>
       where OuterOrigin: OriginTrait { ... }
    fn try_origin_or_root(
        o: OuterOrigin,
    ) -> Result<Option<Self::Success>, OuterOrigin>
       where OuterOrigin: OriginTrait { ... }
}
Expand description

Some sort of check on the origin is performed by this object.

Required Associated Types§

type Success

A return type.

Required Methods§

fn try_origin(o: OuterOrigin) -> Result<Self::Success, OuterOrigin>

Perform the origin check.

fn try_successful_origin() -> Result<OuterOrigin, ()>

Attempt to get an outer origin capable of passing try_origin check. May return Err if it is impossible.

** Should be used for benchmarking only!!! **

Provided Methods§

fn ensure_origin(o: OuterOrigin) -> Result<Self::Success, BadOrigin>

Perform the origin check.

fn ensure_origin_or_root( o: OuterOrigin, ) -> Result<Option<Self::Success>, BadOrigin>
where OuterOrigin: OriginTrait,

The same as ensure_origin except that Root origin will always pass. This can only be used if Success has a sensible impl of Default since that will be used in the result.

fn try_origin_or_root( o: OuterOrigin, ) -> Result<Option<Self::Success>, OuterOrigin>
where OuterOrigin: OriginTrait,

The same as try_origin except that Root origin will always pass. This can only be used if Success has a sensible impl of Default since that will be used in the result.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl<O, AccountId> EnsureOrigin<O> for EnsureNone<AccountId>
where O: OriginTrait<AccountId = AccountId>,

§

type Success = ()

§

impl<O, AccountId> EnsureOrigin<O> for EnsureRoot<AccountId>
where O: OriginTrait,

§

type Success = ()

§

impl<O, AccountId> EnsureOrigin<O> for EnsureSigned<AccountId>
where O: OriginTrait<AccountId = AccountId>, AccountId: Decode + Clone,

§

type Success = AccountId

§

impl<O, AccountId, Success> EnsureOrigin<O> for EnsureRootWithSuccess<AccountId, Success>
where O: OriginTrait, Success: TypedGet,

§

type Success = <Success as TypedGet>::Type

§

impl<O, Ensure, AccountId, Success> EnsureOrigin<O> for EnsureWithSuccess<Ensure, AccountId, Success>
where O: OriginTrait, Ensure: EnsureOrigin<O>, Success: TypedGet,

§

type Success = <Success as TypedGet>::Type

§

impl<O, Original, Mutator> EnsureOrigin<O> for MapSuccess<Original, Mutator>
where Original: EnsureOrigin<O>, Mutator: Morph<<Original as EnsureOrigin<O>>::Success>,

§

type Success = <Mutator as Morph<<Original as EnsureOrigin<O>>::Success>>::Outcome

§

impl<O, Original, Mutator> EnsureOrigin<O> for TryMapSuccess<Original, Mutator>
where O: Clone, Original: EnsureOrigin<O>, Mutator: TryMorph<<Original as EnsureOrigin<O>>::Success>,

§

type Success = <Mutator as TryMorph<<Original as EnsureOrigin<O>>::Success>>::Outcome

§

impl<O, Success> EnsureOrigin<O> for EnsureNever<Success>

§

type Success = Success

§

impl<O, Who, AccountId> EnsureOrigin<O> for EnsureSignedBy<Who, AccountId>
where O: OriginTrait<AccountId = AccountId>, Who: SortedMembers<AccountId>, AccountId: PartialEq + Clone + Ord + Decode,

§

type Success = AccountId

§

impl<OO, Success> EnsureOrigin<OO> for NeverEnsureOrigin<Success>

§

type Success = Success

§

impl<OuterOrigin, L, R> EnsureOrigin<OuterOrigin> for EitherOfDiverse<L, R>
where L: EnsureOrigin<OuterOrigin>, R: EnsureOrigin<OuterOrigin>,

§

type Success = Either<<L as EnsureOrigin<OuterOrigin>>::Success, <R as EnsureOrigin<OuterOrigin>>::Success>

§

impl<OuterOrigin, L, R> EnsureOrigin<OuterOrigin> for EitherOf<L, R>
where L: EnsureOrigin<OuterOrigin>, R: EnsureOrigin<OuterOrigin, Success = <L as EnsureOrigin<OuterOrigin>>::Success>,

§

type Success = <L as EnsureOrigin<OuterOrigin>>::Success

§

impl<OuterOrigin, Origin, PrivilegeCmp> EnsureOrigin<OuterOrigin> for EnsureOriginEqualOrHigherPrivilege<Origin, PrivilegeCmp>
where Origin: Get<OuterOrigin>, OuterOrigin: Eq, PrivilegeCmp: PrivilegeCmp<OuterOrigin>,

§

type Success = ()

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Architects
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureCanPromoteTo
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureCanRetainAt
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureFellowship
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Fellows
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Masters
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Members
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<R: Get<Rank>, O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureAmbassadorsVoiceFrom<R>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<RawOrigin<AccountId, I>>, AccountId, I, const N: u32> EnsureOrigin<O> for EnsureMembers<AccountId, I, N>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a RawOrigin<AccountId, I>>,

impl<O: OriginTrait + From<RawOrigin<AccountId, I>>, AccountId, I, const N: u32, const D: u32> EnsureOrigin<O> for EnsureProportionAtLeast<AccountId, I, N, D>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a RawOrigin<AccountId, I>>,

impl<O: OriginTrait + From<RawOrigin<AccountId, I>>, AccountId, I, const N: u32, const D: u32> EnsureOrigin<O> for EnsureProportionMoreThan<AccountId, I, N, D>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a RawOrigin<AccountId, I>>,

impl<O: OriginTrait + From<RawOrigin<AccountId, I>>, I, AccountId: Decode + Clone> EnsureOrigin<O> for EnsureMember<AccountId, I>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a RawOrigin<AccountId, I>>,

impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<<T as Config>::RuntimeOrigin> for EnsureInducted<T, I, MIN_RANK>

impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<<T as Config>::RuntimeOrigin> for EnsureMember<T, I, MIN_RANK>

impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<<T as Config>::RuntimeOrigin> for EnsureRanked<T, I, MIN_RANK>

impl<T: Config<I>, I: 'static, const MIN_RANK: u16> EnsureOrigin<<T as Config>::RuntimeOrigin> for EnsureRankedMember<T, I, MIN_RANK>

impl<T: Config> EnsureOrigin<<T as Config>::RuntimeOrigin> for EnsureFounder<T>

impl<O: Into<Result<Origin, O>> + From<Origin>> EnsureOrigin<O> for Fellows

impl<O: Into<Result<Origin, O>> + From<Origin>> EnsureOrigin<O> for Spender

impl<O: Into<Result<Origin, O>> + From<Origin>> EnsureOrigin<O> for Fellows

impl<O: Into<Result<Origin, O>> + From<Origin>> EnsureOrigin<O> for Spender

impl<O: OriginTrait + From<Origin>, F: Contains<L>, L: TryFrom<Location> + TryInto<Location> + Clone> EnsureOrigin<O> for EnsureXcm<F, L>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>, F: Contains<Location>> EnsureOrigin<O> for EnsureResponse<F>
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for AuctionAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureFellowship
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Fellows
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipExperts
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipInitiates
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipMasters
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for GeneralAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for LeaseAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for ReferendumCanceller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for ReferendumKiller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Spender
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for StakingAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Treasurer
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for WhitelistedCaller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>, F: Contains<Location>> EnsureOrigin<O> for EnsureXcm<F>
where O::PalletsOrigin: From<Origin> + TryInto<Origin, Error = O::PalletsOrigin>,

impl<RuntimeOrigin: OriginTrait + Clone, Conversion: TryConvert<RuntimeOrigin, Location>> EnsureOrigin<RuntimeOrigin> for EnsureXcmOrigin<RuntimeOrigin, Conversion>
where RuntimeOrigin::PalletsOrigin: PartialEq,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for AuctionAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for EnsureFellowship
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Fellows
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipExperts
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipInitiates
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for FellowshipMasters
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for GeneralAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for LeaseAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for ReferendumCanceller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for ReferendumKiller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Spender
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for StakingAdmin
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for Treasurer
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,

impl<O: OriginTrait + From<Origin>> EnsureOrigin<O> for WhitelistedCaller
where for<'a> &'a O::PalletsOrigin: TryInto<&'a Origin>,