INNER CODE UNIT · Rust

ensure_governance_or_caller

AstarNetwork/Astar · pallets/collator-selection/src/lib.rs:686

        fn ensure_governance_or_caller(
            origin: T::RuntimeOrigin,
            who: &T::AccountId,
        ) -> DispatchResult {
            if T::GovernanceOrigin::ensure_origin(origin.clone()).is_err() {
                let caller = ensure_signed(origin.clone())?;
                ensure!(&caller == who, BadOrigin);
            }
            Ok(())
        }

        /// Checks if the account has a registered validator key.
        fn is_validator_registered(who: &T::AccountId) -> DispatchResult {
            let validator_key = T::ValidatorIdOf::convert(who.clone())
                .ok_or(Error::<T>::NoAssociatedValidatorId)?;
            ensure!(
                T::ValidatorRegistration::is_registered(&validator_key),
                Error::<T>::ValidatorNotRegistered

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…