Skip to content

DeFi App where users can deposit ERC20 token and earn a yield

Notifications You must be signed in to change notification settings

MikeSpa/defi-project

Repository files navigation

DeFi Project

Staking Dapp with front-end that allows users to stake various ERC20 tokens and earn a yield in a custom token ProjectToken. The contract interact with Aave and Compound to deposit the token received from the users and earn a yield.

  • ERC20 Token: ProjectToken.sol
  • Staking contract: StakingContract.sol, current version on kovan: 0x31d314c0eC0A3d78Ce559D575DB2072334d5F354
  • Interface to interact with lending protocol: ILendingProtocol
  • Implementation of that interface for Aave and Compound.
  • Unit tests for every functions
  • Integrations test on Kovan testnet

Front-end

TODO

  • Remove contracts not related to StakingContract: flashloan stuff, uniswap, ...
  • get second account and differentiate between deployer and user in integratioins tests
  • rewrite integration test for new implementation
  • add nicer interface for front-end: graphs with token staked, yield earned, ...

Token

  • Token: deployment script
  • Token: tests
  • better way of issuing token to stakers

Staking Contract

  • deploy script
  • test
  • add Aave deposit/withdraw
  • test "
  • proxy to deposit on aave or compound, contract that take care of sending token x to one protocol and x to another

Lending Protocol interaction

  • Add Aave interaction
  • Aave: deployment script
  • Aave: tests
  • Add Compound interaction
  • C: deployment script
  • C: tests
  • Lending protocol Interface
  • Adapt contract to use several lending protocol
  • security/error handling

Others

  • DAO