Vault Dapp
Config
This dapps config is composed of two state objects. A BaseState which every dapp have and an optionally used State for any Dapp-specific config values 
BaseState
See Dapp Base
State
| Name | Type | Description | 
|---|---|---|
liquidity_token | 
Addr | The contract address of the UST-Vault's LP token | 
InstantiateMsg
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct InstantiateMsg {
    pub base: BaseInstantiateMsg,
    pub token_code_id: u64,
    pub fee: Decimal,
    pub deposit_asset: String,
    pub vault_lp_token_name: Option<String>,
    pub vault_lp_token_symbol: Option<String>,
}
ExecuteMsg
Available Execution operations on the Vault-Dapp:
#[cfg_attr(not(feature = "library"), entry_point)]
pub enum ExecuteMsg {
    Base(BaseExecuteMsg),
    // Add dapp-specific messages here
    Receive(Cw20ReceiveMsg),
    ProvideLiquidity {
        asset: Asset,
    },
    UpdatePool {
        deposit_asset: Option<String>,
        assets_to_add: Vec<String>,
        assets_to_remove: Vec<String>,
    },
    SetFee {
        fee: Fee,
    },
}
Base
See handle_base_message in Dapp Base
Receive
Can be called during a CW20 token transfer when tokens are deposited into the Stablecoin Vault. Allows the token transfer to execute a Receive Hook as a subsequent action within the same transaction.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Receive {
    Cw20ReceiveMsg {
        amount: Uint128,
        sender: HumanAddr,
        msg: Option<Binary>,
    }
}
| Key | Type | Description | 
|---|---|---|
amount | 
Uint128 | Amount of tokens received | 
sender | 
HumanAddr | Sender of token transfer | 
msg* | 
Binary | Base64-encoded JSON of Receive Hook | 
* = optional
ProvideLiquidity
An abstraction around liquidity provision allowing a vault to have liquidity provided to it either with a Native token or with a CW20.
| Key | Type | Description | 
|---|---|---|
asset | 
Asset | Asset to be provided as liquidity. Includes asset info and amount. | 
{
    "provide_liquidity": {
        "asset": {
            "info": {
                "native_token": { "denom": "uusd" },
            },
            "amount": "1000000",
        },
}
UpdatePool
Update the vault's associated pool information and asset information.
| Key | Type | Description | 
|---|---|---|
deposit_asset* | 
Option | 
New deposit asset to be used for the pool. | 
assets_to_add* | 
Vec | 
Assets to be included as claimable | 
assets_to_remove* | 
Vec | 
Assets to be removed from being claimable | 
Note: The 'assets' defined in this call use reference names which are stored in the memory contract rather than full asset information or contract addresses. See the Memory Contract for more
{
    "update_pool": {
        "deposit_asset": "ust",
        "assets_to_add": ["ust", "krw", "anotherone"],
        "assets_to_remove": ["bluna"]
    }
}
SetFee
Update the configured fee information for the vault-dapp.
| Key | Type | Description | 
|---|---|---|
fee* | 
Fee | New fee information to set. | 
{
    "set_fee": {
        "fee": {
            "share": 1.01
        }
    }
}
Receive Hooks
Payable functions when you send a payment to the contract with an appropriate message.
WithdrawLiquidity
Attempt to withdraw deposits. Fees are calculated and deducted. LP tokens submitted with a withdrawal request are burned. The Treasury withdraw fee is paid out by transfering ownership of a fraction of the LP tokens to the treasury contract.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum Cw20HookMsg {
    WithdrawLiquidity {},
}
QueryMsg
pub enum QueryMsg {
    Base(BaseQueryMsg),
    // Add dapp-specific queries here
    State {},
}
Base
See handle_base_query in Dapp Base
State
Returns the saved dapp-specific configuration values saved in State.
{
  "state": {}
}
| Name | Type | Description | 
|---|---|---|
StateResponse
Saved dapp-specific configuration values.
{
  "liquidity_token": "terra1..."
}
| Name | Type | Description | 
|---|---|---|
liquidity_token | 
String | The contract address of the Vault's LP token |