use std::env::current_dir; use std::fs::create_dir_all; use cosmwasm_schema::{export_schema, export_schema_with_title, remove_schemas, schema_for}; use cosmwasm_std::Addr; use cw4::MemberDiff; use cw4_voting::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; use cw_core_interface::voting::{ InfoResponse, TotalPowerAtHeightResponse, VotingPowerAtHeightResponse, }; fn main() { let mut out_dir = current_dir().unwrap(); out_dir.push("schema"); create_dir_all(&out_dir).unwrap(); remove_schemas(&out_dir).unwrap(); export_schema(&schema_for!(InstantiateMsg), &out_dir); export_schema(&schema_for!(ExecuteMsg), &out_dir); export_schema(&schema_for!(QueryMsg), &out_dir); export_schema(&schema_for!(MigrateMsg), &out_dir); export_schema(&schema_for!(MemberDiff), &out_dir); export_schema(&schema_for!(InfoResponse), &out_dir); export_schema(&schema_for!(TotalPowerAtHeightResponse), &out_dir); export_schema(&schema_for!(VotingPowerAtHeightResponse), &out_dir); // Auto TS code generation expects the query return type as QueryNameResponse // Here we map query resonses to the correct name export_schema_with_title(&schema_for!(Addr), &out_dir, "DaoResponse"); export_schema_with_title(&schema_for!(Addr), &out_dir, "GroupContractResponse"); }