# Myliqudity
## MLGT/mlETH токены
1. При вложении в пул **`ETH`**, пользователь получает **`mlETH`**
2. Курс обмена **`mlETH`** растет со временем, отражая интерес пользователя(**`2.25%`** в неделю???`перейти на расчетный APY, исходя из входящего потока rewardPool(см Compound WP 2.3 Interest Rate Model)`)
3. Помимо **`mlETH`** токенов в системе присутствует **`MLGT`**(My Liquidity Governance Token) токен - токен управления протоколом
4. **`+X Мес`** от старта через DAO можно провести решение о дополнительной стимуляции пользователей протокола в виде дополнительного бонуса, начисляемого токенами **`MLGT`** - это расширит пользовательскую базу владельцев токена и уменьшит вероятность появление синдикатов, влияющих на протокол.
## Изменения в разработке
1. SRS => Wiki ([olympusDAO](https://docs.olympusdao.finance/main/), [compound](https://compound.finance/docs/ctokens), [visor](https://docs.visor.finance/))
2. Базовый протокол(пул) => [setprotocol](https://github.com/setprotocol) / [visor](https://github.com/VisorFinance)
3. Казначейство/rewardPool => compound
4. Партнерская программа => отход от офф-чейн логики??
5. Wiki => WP ???([compound](https://compound.finance/documents/Compound.Whitepaper.pdf))
## Принцип ребалансировки/сбора fee оператором
> Оператор с произвольной переодичностью вызывает **`MLTreasury=>collectFee`**, тем самым пополняет пул распределения комисии(через фарминг)
```solidity=
import {TransferHelper} from "@uniswap/lib/contracts/libraries/TransferHelper.sol";
// TODO: optimize interface function => only swapPool address
function collectFee(
address swapPool,
uint256 volume
) external override onlyOperator {
//_getCollectableFeeVolume(swapPool)
//_getRewardPool(swapPool)
TransferHelper.safeTransfer(swapPool, rewardPool, volume);
}
```
## Пользовательский UX
Пользователь минтит токен **`mlETH`**, отправляя на него эфир, пример: [Compound `cDAI`](https://etherscan.io/tx/0xaacf02b50ba3e3330ed077e351301cb4860f2b164584e9ca53d23ef489c9ba64)
```solidity=
import {TransferHelper} from "@uniswap/lib/contracts/libraries/TransferHelper.sol";
function mint() {
//TBA
}
function burn() {
//TBA
}
```