abstract_sdk/base/endpoints/
sudo.rs

1use cosmwasm_std::{DepsMut, Env, Response};
2
3use crate::{base::handler::Handler, AbstractSdkError};
4
5/// Trait for a contract's Sudo entry point.
6pub trait SudoEndpoint: Handler {
7    /// Handler for the Sudo endpoint.
8    fn sudo(
9        self,
10        deps: DepsMut,
11        env: Env,
12        msg: <Self as Handler>::SudoMsg,
13    ) -> Result<Response, Self::Error> {
14        let maybe_handler = self.maybe_sudo_handler();
15        maybe_handler.map_or_else(
16            || {
17                Err(Self::Error::from(AbstractSdkError::MissingHandler {
18                    endpoint: "sudo".to_string(),
19                }))
20            },
21            |f| f(deps, env, self, msg),
22        )
23    }
24}