abstract_app/endpoints/
execute.rs

1use abstract_sdk::base::ModuleIbcEndpoint;
2use abstract_std::app::{AppExecuteMsg, BaseExecuteMsg, ExecuteMsg};
3use cosmwasm_std::{DepsMut, Env, MessageInfo, Response};
4use schemars::JsonSchema;
5use serde::Serialize;
6
7use crate::{
8    state::{AppContract, ContractError},
9    AppError, AppResult, ExecuteEndpoint, Handler, IbcCallbackEndpoint,
10};
11
12impl<
13        Error: From<cosmwasm_std::StdError>
14            + From<AppError>
15            + From<abstract_sdk::AbstractSdkError>
16            + From<abstract_std::AbstractError>
17            + 'static,
18        CustomInitMsg,
19        CustomExecMsg: Serialize + JsonSchema + AppExecuteMsg,
20        CustomQueryMsg,
21        CustomMigrateMsg,
22        SudoMsg,
23    > ExecuteEndpoint
24    for AppContract<Error, CustomInitMsg, CustomExecMsg, CustomQueryMsg, CustomMigrateMsg, SudoMsg>
25{
26    type ExecuteMsg = ExecuteMsg<CustomExecMsg>;
27
28    fn execute(
29        self,
30        deps: DepsMut,
31        env: Env,
32        info: MessageInfo,
33        msg: Self::ExecuteMsg,
34    ) -> Result<Response, Error> {
35        match msg {
36            ExecuteMsg::Module(request) => self.execute_handler()?(deps, env, info, self, request),
37            ExecuteMsg::Base(exec_msg) => self
38                .base_execute(deps, env, info, exec_msg)
39                .map_err(From::from),
40            ExecuteMsg::IbcCallback(msg) => self.ibc_callback(deps, env, info, msg),
41            ExecuteMsg::ModuleIbc(msg) => self.module_ibc(deps, env, info, msg),
42        }
43    }
44}
45
46impl<
47        Error: ContractError,
48        CustomInitMsg,
49        CustomExecMsg,
50        CustomQueryMsg,
51        CustomMigrateMsg,
52        SudoMsg,
53    > AppContract<Error, CustomInitMsg, CustomExecMsg, CustomQueryMsg, CustomMigrateMsg, SudoMsg>
54{
55    fn base_execute(
56        &self,
57        _deps: DepsMut,
58        _env: Env,
59        _info: MessageInfo,
60        _message: BaseExecuteMsg,
61    ) -> AppResult {
62        unreachable!("App BaseExecuteMsg could not be constructed")
63    }
64}