bvs_vault_cw20/
testing.rs1#![cfg(not(target_arch = "wasm32"))]
2
3use crate::msg::{ExecuteMsg, InstantiateMsg, QueryMsg};
4use bvs_library::testing::TestingContract;
5use cosmwasm_std::{Addr, Empty, Env};
6use cw_multi_test::{App, Contract, ContractWrapper};
7use serde::{Deserialize, Serialize};
8
9#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
11pub struct VaultCw20Contract {
12 pub addr: Addr,
13 pub init: InstantiateMsg,
14}
15
16impl TestingContract<InstantiateMsg, ExecuteMsg, QueryMsg> for VaultCw20Contract {
17 fn wrapper() -> Box<dyn Contract<Empty>> {
18 Box::new(ContractWrapper::new(
19 crate::contract::execute,
20 crate::contract::instantiate,
21 crate::contract::query,
22 ))
23 }
24
25 fn default_init(app: &mut App, _env: &Env) -> InstantiateMsg {
26 InstantiateMsg {
27 pauser: Self::get_contract_addr(app, "pauser").to_string(),
28 router: Self::get_contract_addr(app, "vault_router").to_string(),
29 operator: app.api().addr_make("operator").to_string(),
30 cw20_contract: Self::get_contract_addr(app, "cw20").to_string(),
31 }
32 }
33
34 fn new(app: &mut App, env: &Env, msg: Option<InstantiateMsg>) -> Self {
35 let init = msg.unwrap_or(Self::default_init(app, env));
36 let code_id = Self::store_code(app);
37 let addr = Self::instantiate(app, code_id, "vault_cw20", &init);
38 Self { addr, init }
39 }
40
41 fn addr(&self) -> &Addr {
42 &self.addr
43 }
44}