1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use abstract_os::objects::memory::Memory;
use cosmwasm_std::{Addr, Coin, CosmosMsg, Deps, Response, StdResult, Storage};
use serde::Serialize;
use crate::Resolve;
pub trait OsExecute {
type Err: ToString;
fn os_execute(&self, deps: Deps, msgs: Vec<CosmosMsg>) -> Result<Response, Self::Err>;
}
pub trait MemoryOperation {
fn load_memory(&self, store: &dyn Storage) -> StdResult<Memory>;
fn resolve<T: Resolve>(&self, deps: Deps, memory_entry: &T) -> StdResult<T::Output> {
memory_entry.resolve(deps, &self.load_memory(deps.storage)?)
}
}
pub trait Dependency {
fn dependency_address(&self, deps: Deps, dependency_name: &str) -> StdResult<Addr>;
fn call_api_dependency<E: Serialize>(
&self,
deps: Deps,
dependency_name: &str,
request_msg: &E,
funds: Vec<Coin>,
) -> StdResult<CosmosMsg>;
}