abstract_add_on/
execute.rs1use abstract_os::add_on::BaseExecuteMsg;
2
3use cosmwasm_std::{DepsMut, Env, MessageInfo, Response};
4
5use crate::{state::AddOnContract, AddOnResult};
6
7impl<'a> AddOnContract<'a> {
8 pub fn execute(
9 &self,
10 deps: DepsMut,
11 _env: Env,
12 info: MessageInfo,
13 message: BaseExecuteMsg,
14 ) -> AddOnResult {
15 match message {
16 BaseExecuteMsg::UpdateConfig { memory_address } => {
17 self.update_config(deps, info, memory_address)
18 }
19 }
20 }
21
22 fn update_config(
23 &self,
24 deps: DepsMut,
25 info: MessageInfo,
26 memory_address: Option<String>,
27 ) -> AddOnResult {
28 self.admin.assert_admin(deps.as_ref(), &info.sender)?;
31
32 let mut state = self.base_state.load(deps.storage)?;
33
34 if let Some(memory_address) = memory_address {
35 state.memory.address = deps.api.addr_validate(memory_address.as_str())?;
36 }
37
38 self.base_state.save(deps.storage, &state)?;
39
40 Ok(Response::default().add_attribute("action", "updated_memory_address"))
41 }
42}