The Factory contract is Mirror Protocol's central directory and organizes information related to mAssets and the Mirror Token (MIR). It is also responsible for minting new MIR tokens each block and distributing them to the Staking Contract for rewarding LP &sLP Token stakers.
After the initial bootstrapping of Mirror Protocol contracts, the Factory is assigned to be the owner for the Mint, Oracle, Staking, and Collector contracts. The Factory is owned by the Gov Contract.
Calls the contract specified with the message to execute. Used for invoking functions on other Mirror Contracts since Mirror Factory is defined to be the owner. To be controlled through governance.
Mints the appropriate amount of new MIR tokens as reward for LP stakers by sends the newly minted tokens to the Mirror Staking contract to be distributed to its stakers. Can be called by anyone at any time to trigger block reward distribution for LP stakers.
The contract keeps track of the last height at which Distribute was called for a specific asset, and uses it to calculate the amount of new assets to mint for the blocks occurred in the interval between.
Code ID for CW20 contract for generating new mAssets
**distribution_schedule*
Vec<(u64, u64, Uint128)>
New distribution schedule
asset_token
HumanAddr
Contract address of mAsset token
weight
u32
Ratio of MIR token reward received by this asset in comparison to other tokens
name
String
Name of new asset to be whitelisted
oracle_proxy
HumanAddr
Address of the oracle proxy contract that provides prices for this asset
params
Params
mAsset parameters to be registered
symbol
String
mAsset symbol (ex: AAPL)
auction_discount
Decimal
Liquidation discount for purchasing CDP's collateral
min_collateral_ratio
Decimal
Minimum C-ratio for CDPs that mint the mAsset
weight*
u32
Ratio of MIR token reward received by this asset in comparison to other tokens
mint_period*
u64
Time period after asset creation in which minting is enabled (Seconds)
min_collateral_ratio_after_ipo*
Decimal
min_collateral_ratio to be applied to this asset after IPO
pre_ipo_price*
Decimal
Fixed price used to mint Pre-IPO asset during mint_period
oracle_feeder
HumanAddr
Address of Oracle Feeder for mAsset
asset_token
HumanAddr
Contract address of mAsset token
contract_addr
HumanAddr
Contract address of contract to call
msg
Binary
Base64-encoded JSON of ExecuteMsg
asset_token
HumanAddr
Contract address of mAsset token
end_price
Decimal
Final price to freeze revoked mAsset
name
String
Name of the new asset post-migration
symbol
String
Symbol for the new asset post-migration
oracle_proxy
String
Address of the oracle proxy contract that will provide prices for this asset after asset migration takes place
from_token
String
Contract address of mAsset to migrate
owner
HumanAddr
Contract address of mAsset token
mirror_token
HumanAddr
Final price to freeze revoked mAsset
mint_contract
HumanAddr
Contract address of Mirror Mint
staking_contract
HumanAddr
Contract address of Mirror Oracle
commission_collector
HumanAddr
Contract address of Mirror Collector
oracle_contract
HumanAddr
Contract address of Mirror Oracle
terraswap_factory
HumanAddr
Contract address of Terraswap Factory
token_code_id
u64
Code ID for CW20 contract for generating new mAssets
base_denom
String
Native token denom for Terraswaap pairs (TerraUSD)
genesis_time
u64
Block height which the Factory contract was instantiated
distribution_schedule
Vec<(u64, u64, Uint128)>
Distribution schedule for the minting of new MIR tokens. Each entry consists of:
- start time (seconds)
- end time (seconds)
distribution amount for the interval
Determines the total amount of new MIR tokens minted as rewards for LP stakers over the interval [start time, end time].
owner
HumanAddr
Contract address of mAsset token
mirror_token
HumanAddr
Final price to freeze revoked mAsset
mint_contract
HumanAddr
Contract address of Mirror Mint
staking_contract
HumanAddr
Contract address of Mirror Oracle
commission_collector
HumanAddr
Contract address of Mirror Collector
oracle_contract
HumanAddr
Contract address of Mirror Oracle
terraswap_factory
HumanAddr
Contract address of Terraswap Factory
token_code_id
u64
Code ID for CW20 contract for generating new mAssets
base_denom
String
Native token denom for Terraswaap pairs (TerraUSD)
genesis_time
u64
Block height which the Factory contract was instantiated
distribution_schedule
Vec<(u64, u64, Uint128)>
Distribution schedule for the minting of new MIR tokens. Each entry consists of:
start time (seconds)
end time (seconds)
distribution amount for the interval
Determines the total amount of new MIR tokens minted as rewards for LP stakers over the interval [start time, end time].
asset_token
HumanAddr
Contract address of asset token
weights
Vec<(HumanAddr, u32)>
List of reward weight assigned to each mAsset. Each entry consists of:
- Token contract address
- weight
last_distributed
u64
Block height of the most recent reward distribution
asset_token
HumanAddr
Contract address of asset token
weights
Vec<(HumanAddr, u32)>
List of reward weight assigned to each mAsset. Each entry consists of:
- Token contract address
- weight
last_distributed
u64
Block height of the most recent reward distribution