MikeSpa / defi-project

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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


Languages

Language:Python 50.8%Language:Solidity 31.7%Language:TypeScript 16.6%Language:HTML 0.8%Language:CSS 0.2%