RevenueSplitBuyBack
Uses 50% of protocol revenue to buy MTA rewards for stakers and 50% to mStable Treasury.
Last updated
Uses 50% of protocol revenue to buy MTA rewards for stakers and 50% to mStable Treasury.
Last updated
function notifyRedistributionAmount (address _mAsset, uint256 _amount) external
Simply transfers the mAsset from the sender to here
function buyBackRewards (address[] mAssets, uint256[] minBassetsAmount, uint256[] minRewardsAmounts, bytes[] uniswapPaths) external
Buys reward tokens, eg MTA, using mAssets like mUSD or mBTC from protocol governance fees.
function donateRewards () external
Donates purchased rewards, eg MTA, to staking contracts via the Emissions Controller.
function addStakingContract (uint16 _stakingDialId) external
Adds a new staking contract that will receive MTA rewards
Parameter | Type | Description |
---|---|---|
Parameter | Type | Description |
---|---|---|
Parameter | Type | Description |
---|---|---|
_mAsset
address
Address of mAsset
_amount
uint256
Units of mAsset collected
mAssets
address[]
Addresses of mAssets that are to be sold for rewards. eg mUSD and mBTC.
minBassetsAmount
uint256[]
Minimum amount of bAsset tokens to receive for each redeem of mAssets.
The amount uses the decimal places of the bAsset.
Example 1: Redeeming 10,000 mUSD with a min 2% slippage to USDC which has 6 decimal places.
minBassetsAmounts = 10,000 mAssets * slippage 0.98 * USDC decimals 1e6 = 1e4 * 0.98 * 1e6 = 1e10 * 0.98 = 98e8
Example 2: Redeeming 1 mBTC with a min 5% slippage to WBTC which has 8 decimal places. minBassetsAmounts = 1 mAsset * slippage 0.95 * WBTC decimals 1e8 = 0.95 * 1e8 = 95e6
minRewardsAmounts
uint256[]
Minimum amount of reward tokens received from the sale of bAssets. The amount uses the decimal places of the rewards token.
Example 1: Swapping 10,000 USDC with a min 1% slippage to MTA which has 18 decimal places. minRewardsAmounts = 10,000 USDC * slippage 0.99 * MTA decimals 1e18 * MTA/USD rate 1.2 = 1e4 * 0.99 * 1e18 * 1.2 = 1e22 * 0.99 = 99e20
Example 1: Swapping 1 WBTC with a min 3% slippage to MTA which has 18 decimal places. minRewardsAmounts = 1 WBTC * slippage 0.97 * MTA decimals 1e18 * MTA/BTC rate 0.00001 = 1 * 0.97 * 1e18 * 0.00001 = 0.97 * 1e13 = 97e11
uniswapPaths
bytes[]
The Uniswap V3 bytes encoded paths.
_stakingDialId
uint16
dial identifier from the Emissions Controller of the staking contract.