CodeWarriorr / lending-protocol

Simple Lending Protocol. For educational purpose only.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lending platform

For educational purpose only.

  1. Oracle
    • Stwórz prosty kontrakt oracle, którego źródłem będą ceny z chainlinka
  2. Depozyty
    • Stwórz kontrakt, który będzie pozwalał dowolnemu użytkownikowi na zdeponowanie dowolnej ilości wspieranego assetu.
    • Assety posiadają współczynnik “collateralFactor” który jest ustawiany przez Ownera. “CollateralFactor” określa jaka część wartości depozytu jest uwzględniana jako pozytywne liquidity.
    • Kontrakt powinien umożliwiać obliczanie “liquidity” użytkownika, które można obliczyć za pomocą wzoru: ∑ {ilość assetu} * {cena assetu} * {collateralFactor}
  3. Pożyczki
    • Rozszerz kontrakt o możliwość brania pożyczek.
    • Wartość możliwej do zaciągnięcia pożyczki nie może przekraczać wartości liquidity użytkownika
    • Formuła obliczająca liquidty powinna teraz uwzględniać również pożyczki i odpowiednio zmniejszać liquidity o wartość pożyczki
  4. Likwidacja
    • Użytkownik którego liquidity spadnie poniżej 0 (np. na skutek zmiany ceny zdeponowanego, lub pożyczonego assetu) może zostać zlikiwdowany
    • Likwidujący może spłacić pożyczkę likwidowanego, otrzymując w zamian jego depozyt o wartości pożyczki (z pominięciem collateralFactor!) przemnożony przez “liquidationIncentive”
    • “liquidationIncentive” jest ustalane przez Ownera i stanowi & bonus który otrzyma likwidujący
    • Może dojść do sytuacji gdzie depozyt likwidowanej osoby będzie niewystarczający do pokrycia kosztów spłaty pożyczki i bonusu. W takim przypadku likwidujący wciąż powinien mieć możliwość przeprowadzenia operacji - zlikwidowany zostanie wtedy cały depozyt likwidowanej osoby.
  5. Oprocentowanie
    • Depozyty powinny zarabiać na oprocentowaniu, które wynikać powinno z utylizacji danego assetu - czyli proporcji ilości depozytów do pożyczek
    • Pożyczki powinny obciążać pożyczających oprocentowaniem, na którym zarabiają deponujący, oraz platforma.
    • Oprocentowanie pożyczek > Oprocentowanie depozytu

Potential improvements

  1. Limit liquidation to protect user by preventing liquidation of whole collaterall balance
  2. RToken could be transferrable up to user positive liquidity
  3. Liquidation could transfer underlying asset instead of RToken
  4. Customisable interest and borrow resserve params like base, slope, utilisation threshold. OR Introduce multiple interest and borrow strategies in form of separate smart contract.

About

Simple Lending Protocol. For educational purpose only.


Languages

Language:Solidity 99.5%Language:Shell 0.4%Language:Makefile 0.1%