abstract_cw_plus_interface/
cw20_base.rs

1use cw_orch::interface;
2
3use abstract_cw20_base::contract;
4pub use abstract_cw20_base::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg};
5
6#[interface(InstantiateMsg, ExecuteMsg, QueryMsg, MigrateMsg)]
7pub struct Cw20Base;
8
9#[cfg(not(target_arch = "wasm32"))]
10use cw_orch::prelude::*;
11
12#[cfg(not(target_arch = "wasm32"))]
13impl<Chain: CwEnv> Uploadable for Cw20Base<Chain> {
14    // Return the path to the wasm file
15    fn wasm(_chain: &ChainInfoOwned) -> WasmPath {
16        artifacts_dir_from_workspace!()
17            .find_wasm_path("cw20_base")
18            .unwrap()
19    }
20    // Return a CosmWasm contract wrapper
21    fn wrapper() -> Box<dyn MockContract<Empty>> {
22        Box::new(
23            ContractWrapper::new_with_empty(
24                contract::execute,
25                contract::instantiate,
26                contract::query,
27            )
28            .with_migrate(contract::migrate),
29        )
30    }
31}