terp_code_controllers/
init.rs1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{Addr, Binary, WasmMsg};
3
4#[cw_serde]
5pub enum Admin {
6 Address { addr: String },
7 Creator {},
8}
9
10#[cw_serde]
11pub struct ContractInstantiateMsg {
12 pub code_id: u64,
13 pub msg: Binary,
14 pub admin: Option<Admin>,
15 pub label: String,
16}
17
18impl ContractInstantiateMsg {
19 pub fn into_wasm_msg(self, creator: Addr) -> WasmMsg {
20 WasmMsg::Instantiate {
21 admin: self.admin.map(|admin| match admin {
22 Admin::Address { addr } => addr,
23 Admin::Creator {} => creator.into_string(),
24 }),
25 code_id: self.code_id,
26 msg: self.msg,
27 label: self.label,
28 funds: vec![],
29 }
30 }
31}