white_whale_std/vault_network/
vault_factory.rs1use crate::fee::VaultFee;
2use crate::pool_network::asset::AssetInfo;
3use crate::vault_network::vault;
4use cosmwasm_schema::{cw_serde, QueryResponses};
5use cosmwasm_std::Addr;
6
7#[cw_serde]
9pub struct InstantiateMsg {
10 pub owner: String,
12 pub vault_id: u64,
14 pub token_id: u64,
16 pub fee_collector_addr: String,
18}
19
20#[cw_serde]
22pub enum ExecuteMsg {
23 CreateVault {
26 asset_info: AssetInfo,
27 fees: VaultFee,
28 token_factory_lp: bool,
31 },
32 MigrateVaults {
35 vault_addr: Option<String>,
36 vault_code_id: u64,
37 },
38 RemoveVault { asset_info: AssetInfo },
40 UpdateVaultConfig {
42 vault_addr: String,
43 params: vault::UpdateConfigParams,
44 },
45 UpdateConfig {
48 owner: Option<String>,
49 fee_collector_addr: Option<String>,
50 vault_id: Option<u64>,
51 token_id: Option<u64>,
52 },
53}
54
55#[cw_serde]
57#[derive(QueryResponses)]
58pub enum QueryMsg {
59 #[returns(Config)]
61 Config {},
62 #[returns(Option<String>)]
64 Vault { asset_info: AssetInfo },
65 #[returns(VaultsResponse)]
67 Vaults {
68 start_after: Option<Vec<u8>>,
69 limit: Option<u32>,
70 },
71}
72
73#[cw_serde]
75pub struct MigrateMsg {}
76
77pub const INSTANTIATE_VAULT_REPLY_ID: u64 = 1;
79
80#[cw_serde]
81pub struct Config {
82 pub owner: Addr,
83 pub vault_id: u64,
84 pub token_id: u64,
85 pub fee_collector_addr: Addr,
86}
87
88#[cw_serde]
90pub struct VaultsResponse {
91 pub vaults: Vec<VaultInfo>,
92}
93
94#[cw_serde]
96pub struct VaultInfo {
97 pub vault: String,
98 pub asset_info: AssetInfo,
99 pub asset_info_reference: Vec<u8>,
100}