pub fn ensure_root_or_server(origin: OriginFor<T>) -> DispatchResult {
			let is_root = ensure_root(origin.clone()).is_ok();
			let is_offchain = {
				let signed = ensure_signed(origin);
				signed.is_ok() && signed.ok() == Self::get_airdrop_server_account()
			};

			ensure!(is_root || is_offchain, DispatchError::BadOrigin);
			Ok(())
		}
/// Helper function to create similar interface like `ensure_root`
/// but which instead check for server key
Helper function to create similar interface like `ensure_root`
but which instead check for server key
Helper function to create similar interface like ` ensure_root ` but which instead check for server key
pub fn ensure_root_or_server(origin: OriginFor<T>) -> DispatchResult {
			let is_root = ensure_root(origin.clone()).is_ok();
			let is_offchain = {
				let signed = ensure_signed(origin);
				signed.is_ok() && signed.ok() == Self::get_airdrop_server_account()
			};
			ensure!(is_root || is_offchain, DispatchError::BadOrigin);
			Ok(())
		}
pub fn ensure_root_or_server ( origin : OriginFor < T > ) -> DispatchResult { let is_root = ensure_root ( origin . clone ( ) ) . is_ok ( ) ; let is_offchain = { let signed = ensure_signed ( origin ) ; signed . is_ok ( ) && signed . ok ( ) == Self :: get_airdrop_server_account ( ) } ; ensure ! ( is_root is_offchain DispatchError BadOrigin ) ; Ok ( ( ) ) }
Helper function to create similar interface like `ensure_root`
but which instead check for server key
Helper function to create similar interface like ` ensure_root ` but which instead check for server key
origin
OriginFor<T>