Config
InstantiateMsg
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct InstantiateMsg {
pub gov_contract: String, // anchor gov contract
pub anchor_token: String, // anchor token address
pub whitelist: Vec<String>, // whitelisted contract addresses allowed to spend from distributor
pub spend_limit: Uint128, // spend limit per each `spend` request
}
{
"gov_contract": "terra1...",
"anchor_token": "terra1...",
"whitelist": [
"terra1...",
"terra1...",
"terra1..."
],
"spend_limit": "100000000"
}
ExecuteMsg
UpdateConfig
Updates the Distributor contract configuration. Can only be issued by the Gov contract.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
UpdateConfig {
spend_limit: Option<Uint128>,
}
}
{
"update_config": {
"spend_limit": "100000000"
}
}
* = optional
Spend
Spends ANC in Distributor. Can only be issued by whitelisted addresses.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
Spend {
recipient: String,
amount: Uint128,
}
}
{
"spend": {
"recipient": "terra1...",
"amount": "100000000"
}
}
AddDistributor
Adds a new ANC distribution contract to the whitelist. Can only be issued by the Gov contract.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
AddDistributor {
distributor: String,
}
}
{
"add_distributor": {
"distributor": "terra1..."
}
}
RemoveDistributor
Removes a ANC distribution contract from the whitelist. Can only be issued by the Gov contract.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
RemoveDistributor {
distributor: String,
}
}
{
"remove_distributor": {
"distributor": "terra1..."
}
}
QueryMsg
Config
Gets the Distributor contract configuration.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
Config {}
}
ConfigResponse
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct ConfigResponse {
pub gov_contract: String,
pub anchor_token: String,
pub whitelist: Vec<String>,
pub spend_limit: Uint128,
}
{
"gov_contract": "terra1...",
"anchor_token": "terra1...",
"whitelist": [
"terra1...",
"terra1...",
"terra1..."
],
"spend_limit": "100000000"
}