- 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
outputFilledAmountUsdinRariFundController.marketSell0xOrdersFillOrKill. - Check
fundDisabledinRariFundManager.upgradeFundController.
- Updated mStable swap tests to skip removed bAssets (i.e., DAI).
- Fixed bug in validation of mUSD redemption in
RariFundController.withdrawAndExchange.
- Added
RariFundPriceConsumer.allCurrenciesPeggedTo1Usdvariable.
- Added 0.5% withdrawal fee.
- Removed
RariFundManager.withdrawFeesto 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
RariFundManagerpermission to burn RSPT on withdrawals without the need for approval transactions. - Various minor improvements to
RariFundManager(e.g., replaceddisableFundandenableFundwithsetFundDisabled). - Fixed
LIVE_UPGRADE_FUND_OWNER_PRIVATE_KEYintruffle-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
interestAccruedByto save gas and removeinitNetDeposits(QSP-3). - Replace imitation of
balanceOfUnderlyingwith actual call tobalanceOfUnderlyinginCompoundPoolController(QSP-4). - Make sure new contract address is a
RariFundControllerinupgradeFundController(QSP-5). - Updated docs (QSP-7, QSP-10).
- Make sure sender is the 0x Exchange v3 contract in fallback functions of
RariFundControllerandRariFundProxy(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._withdrawFromcould 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.getAcceptedCurrenciesand replaceRariFundController.getPoolBalanceswithRariFundProxy.getRawFundBalancesAndPricesto speed up web client. - Replaced
setAcceptedCurrencywithsetAcceptedCurrenciesto minimize rebalancer gas usage. - Added
getAccountBalanceLimitfunction toRariFundManager. - Moved token forwarding logic from
RariFundManager.setFundControllertoRariFundController.upgradeFundController. - Store decimal precision of tokens in contracts instead of querying the token contracts (to save gas).
- Added
forwardLostFundsfunction 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
scriptsfolder 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.mdtoCONCEPT.mdand improved content. - Added UML class diagrams for contracts.
- Added Solidity metrics report.
- Added
- Other changes to package:
- Replaced patched fork of
ganche-corewith 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.