The Collector accumulates fee rewards generated from CDP withdrawal within the protocol, and converts them into UST in order to purchase MIR from the MIR-UST Terraswap pool. The MIR is then sent to the Gov Contract to supply trading fee rewards for MIR stakers.
InitMsg
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct InitMsg {
pub distribution_contract : HumanAddr ,
pub terraswap_factory : HumanAddr ,
pub mirror_token : HumanAddr ,
pub base_denom : String ,
pub aust_token : HumanAddr ,
pub anchor_market : HumanAddr ,
pub bluna_token : HumanAddr ,
pub bluna_swap_denom : String ,
}
Copy {
"distribution_contract" : "terra1..." ,
"terraswap_factory" : "terra1..." ,
"mirror_token" : "terra1..." ,
"base_denom" : "uusd" , // native Terra token
"aust_token" : "terra1..." , //aUST params
"anchor_market" : "terra1..." ,
"bluna_token" : "terra1..." , //bLuna params
"bluna_swap_denom" : "uusd"
}
Key Type Description Contract address of Terraswap Factory
Contract address of Mirror Token (MIR)
Base denomination (native Terra token denom)
Address of aUST token contract
Address of Anchor Market contract
Address of bLuna token contract
Base denomination which bLuna to be swapped into (uusd)
HandleMsg
UpdateConfig
Updates the configuration of Collector contrat. Can only be called by owner.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum HandleMsg {
UpdateConfig {
owner : Option < HumanAddr >,
distribution_contract : Option < HumanAddr >,
terraswap_factory : Option < HumanAddr >,
mirror_token : Option < HumanAddr >,
base_denom : Option < String >,
aust_token : Option < HumanAddr >,
anchor_market : Option < HumanAddr >,
bluna_token : Option < HumanAddr >,
bluna_swap_denom : Option < String >,
},
Copy {
"update_config" : {
"owner" : "terra1..." ,
"distribution_contract" : "terra1..." ,
"terraswap_factory" : "terra1..." ,
"mirror_token" : "terra1..." ,
"base_denom" : "uusd" , // native Terra token
"aust_token" : "terra1..." , //aUST params
"anchor_market" : "terra1..." ,
"bluna_token" : "terra1..." , //bLuna params
"bluna_swap_denom" : "uusd"
}
}
Key Type Description Address of the contract owner*
Contract address of Terraswap Factory
Contract address of Mirror Token (MIR)
Base denomination (native Terra token denom)
Address of aUST token contract
Address of Anchor Market contract
Address of bLuna token contract
Base denomination which bLuna to be swapped into (uusd)
*= optional
Convert
Depending on asset_token
, performs one of the following:
if asset_token
is an mAsset Luna or Anchor sells the contract's balance of that mAsset for UST on Terraswap
if asset_token
is the UST token, buys MIR off the MIR/UST Terraswap pool with the contract's UST balance
if asset_token
is aUST, or bLuna sells the token based on registered anchor_market
or bluna_swap_denom
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum HandleMsg {
Convert {
asset_token : HumanAddr ,
}
}
Copy {
"convert" : {
"asset_token" : "terra1..."
}
}
Key Type Description Contract address of asset to convert
LunaSwapHook
Hook to swap Luna token to MIR.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum HandleMsg {
LunaSwapHook {}
}
QueryMsg
Config
Get the Mirror Collector contract configuration.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum QueryMsg {
Config {}
}
Response
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct ConfigResponse {
pub owner : HumanAddr ,
pub distribution_contract : HumanAddr , // collected rewards receiver
pub terraswap_factory : HumanAddr ,
pub mirror_token : HumanAddr ,
pub base_denom : String ,
pub aust_token : HumanAddr ,
pub anchor_market : HumanAddr ,
pub bluna_token : HumanAddr ,
pub bluna_swap_denom : String ,
}
Key Type Description Address of the contract owner*
Contract address of Terraswap Factory
Contract address of Mirror Token (MIR)
Base denomination (native Terra token denom)
Address of aUST token contract
Address of Anchor Market contract
Address of bLuna token contract
Base denomination which bLuna to be swapped into (uusd)
Response
Copy {
"config_response" : {
"owner" : "terra1..." ,
"distribution_contract" : "terra1..." ,
"terraswap_factory" : "terra1..." ,
"mirror_token" : "terra1..." ,
"base_denom" : "uusd" , // native Terra token
"aust_token" : "terra1..." , //aUST params
"anchor_market" : "terra1..." ,
"bluna_token" : "terra1..." , //bLuna params
"bluna_swap_denom" : "uusd"
}
}
Key Type Description Address of the contract owner*
Contract address of Terraswap Factory
Contract address of Mirror Token (MIR)
Base denomination (native Terra token denom)
Address of aUST token contract
Address of Anchor Market contract
Address of bLuna token contract
Base denomination which bLuna to be swapped into (uusd)