Trait frame_support::traits::EnsureOrigin
source · 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§
Required Methods§
sourcefn try_origin(o: OuterOrigin) -> Result<Self::Success, OuterOrigin>
fn try_origin(o: OuterOrigin) -> Result<Self::Success, OuterOrigin>
Perform the origin check.
sourcefn try_successful_origin() -> Result<OuterOrigin, ()>
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§
sourcefn ensure_origin(o: OuterOrigin) -> Result<Self::Success, BadOrigin>
fn ensure_origin(o: OuterOrigin) -> Result<Self::Success, BadOrigin>
Perform the origin check.
sourcefn ensure_origin_or_root(
o: OuterOrigin,
) -> Result<Option<Self::Success>, BadOrigin>where
OuterOrigin: OriginTrait,
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.
sourcefn try_origin_or_root(
o: OuterOrigin,
) -> Result<Option<Self::Success>, OuterOrigin>where
OuterOrigin: OriginTrait,
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.
Object Safety§
This trait is not object safe.