- Fuse integration!
- Upgrade to mStable mUSD v3.
- Integrate swaps via Uniswap V2 in
RariFundController
.
- Upgraded mStable SAVE V1 to V2 (and implemented MTA rewards).
- Fixed bug in calculation of
outputFilledAmountUsd
inRariFundController.marketSell0xOrdersFillOrKill
. - Check
fundDisabled
inRariFundManager.upgradeFundController
.
- Updated mStable swap tests to skip removed bAssets (i.e., DAI).
- Fixed bug in validation of mUSD redemption in
RariFundController.withdrawAndExchange
.
- Added
RariFundPriceConsumer.allCurrenciesPeggedTo1Usd
variable.
- Added 0.5% withdrawal fee.
- Removed
RariFundManager.withdrawFees
to save gas on deployment.
- Removed
- Implemented liquidity mining of RGT (Rari Governance Token) distributions.
- Removed account balance limit functions.
- Moved dApp to
rari-dapp-legacy
. - Gave
RariFundManager
permission to burn RSPT on withdrawals without the need for approval transactions. - Various minor improvements to
RariFundManager
(e.g., replaceddisableFund
andenableFund
withsetFundDisabled
). - Fixed
LIVE_UPGRADE_FUND_OWNER_PRIVATE_KEY
intruffle-config.js
. - Changed performance/interest fee rate to 9.5%.
- Rebranded to Rari Stable Pool and Rari Stable Pool Token (RSPT).
- Implemented lending via Aave.
- Implemented lending and exchanges via mStable.
- Removed account balance limit.
- Implemented daily limit on proportion of funds lost due to exchange.
- Added currency and pool allocation pie chart to web client.
- Fixed slippage calculation logic in web client.
- Fixed Quantstamp audit findings:
- Implement stablecoin pricing via Chainlink (QSP-1).
- Replaced calls to
transfer()
withcall.value()
(QSP-3). - Implemented proxy storage for
RariFundManager
,RariFundToken
, andRariFundPriceConsumer
(QSP-3). - Upgrade RFT, removing
interestAccruedBy
to save gas and removeinitNetDeposits
(QSP-3). - Replace imitation of
balanceOfUnderlying
with actual call tobalanceOfUnderlying
inCompoundPoolController
(QSP-4). - Make sure new contract address is a
RariFundController
inupgradeFundController
(QSP-5). - Updated docs (QSP-7, QSP-10).
- Make sure sender is the 0x Exchange v3 contract in fallback functions of
RariFundController
andRariFundProxy
(QSP-8). - Check for overflow before conversion from uint256 to int256 (QSP-9).
- Locked all Solidity version pragmas to 0.5.17 (QSP-11, QSP-12).
- Improved code comments (QSP-10, QSP-14).
- Fixed bug in which
RariFundManager._withdrawFrom
could have overestimated the amount of RFT burned (see commit 9059e8c).- It seems that this bug did not cause any issues before it was fixed: it was discovered during development and was never reported by any users.
- Other changes to contracts:
- Externalized pool and exchange libraries.
- Added events for pool allocations.
- Optimized
RariFundController
. - Add
RariFundManager.getAcceptedCurrencies
and replaceRariFundController.getPoolBalances
withRariFundProxy.getRawFundBalancesAndPrices
to speed up web client. - Replaced
setAcceptedCurrency
withsetAcceptedCurrencies
to minimize rebalancer gas usage. - Added
getAccountBalanceLimit
function toRariFundManager
. - Moved token forwarding logic from
RariFundManager.setFundController
toRariFundController.upgradeFundController
. - Store decimal precision of tokens in contracts instead of querying the token contracts (to save gas).
- Added
forwardLostFunds
function to RariFundManager and RariFundProxy to forward lost tokens accidentally transferred directly to these contracts. - Made Rari contract variables public in contracts.
- Removed unnecessary boolean return values.
- Removed version constants from all contracts.
- Add fund owner as minter of RSPT in case of emergency.
- Other small improvements, bug fixes, comments, documentation, etc.
- Other changes to testing:
- Added Travis CI.
- Run Ganache beforehand in test script so Travis CI works.
- Unlock development accounts in Ganache so we don't need private keys for testing.
- Reordered tests so 0x exchanges come first so orders from 0x API are fresh.
- Assert with margin of error in
test/3_fund_owner.js
. - Fixed accepted margin of error in
test/5_fund_user.js
. - Added test to check gas used by
RariFundController.upgradeFundController
. - Added test to check gas used by
RariFundProxy.withdrawAndExchange
. - Moved scripts to
scripts
folder and set as executable. - Increased block gas limit to 12.5 million in
scripts/ganache.js
. - Minor improvements to test dummy contracts.
- Other improvements to test scripts.
- Added copyright notices to tests.
- Added Travis CI.
- Other changes to web client:
- Updated web3.js and providers used by web client.
- Other minor web client improvements and bug fixes.
- Other changes to documentation:
- Added
USAGE.md
. - Improved
README.md
,API.md
, andDEPLOYED.md
. - Renamed
FUND.md
toCONCEPT.md
and improved content. - Added UML class diagrams for contracts.
- Added Solidity metrics report.
- Added
- Other changes to package:
- Replaced patched fork of
ganche-core
with genuine beta update. - Upgrade Truffle to
v5.1.45
. - Added build folder to
.gitignore
. - Added GitHub repo and links to
package.json
.
- Replaced patched fork of
- Implemented GSN support for DAI deposits via
RariFundProxy.deposit
. - Resdesigned and improved web client.
- Modal popups for slippage and exchange fee confirmation.
- Replaced today's APY with current APY.
- Fixed Fortmatic support.
- Cache 0x prices for 60 seconds so slippage doesn't change so quickly.
- Implemented account balance limit checking for deposits.
- Support for transferring RFT in USD quantities.
- Improved input handling for deposits, withdrawals and transfers.
- Better number formatting.
- Analytics support with Mixpanel.
- Show USD equivalents of ETH exchange fees.
- Various bug fixes.
- Updated WalletConnect and Web3Modal.
- Simplified
.gitignore
. - Updated README.md and API.md, added license, and improved source code comments.
- Contracts were restructured to make RariFundManager smaller so we can add more code to it (like gas optimizations).
- Various bugs have also been fixed (e.g., USDT approval error in RariFundProxy.exchangeAndDeposit).
- Also added migrations code for upgrading from v1.0.0.
- Added COMP to current APY, APY today, and charts in web client.
- Fixed Fortmatic and Portis API keys in web client.
- Use stablecoin prices for slippage indicators in web client.
- Fixed minor bug in taker fee processing in 0x exchange code in web client and smart contract tests.
- Withdraw tokens from Rari before each test in
test/account-balance-limit.js
. - Fix bug in assertion in
test/fund-fees.js
. - Widened APY today display on web client.
- Minor fixes to app.js related to error handling.
- Reworded package description, docs, and web client content, error messages, and code comments.