Практическое задание

Упрощенную версию платформы Compound Finance для кредитования и заимствования. Контракт должен позволять пользователям вносить активы, получать проценты и заимствовать активы на фоне своих вкладов.

Требования:

  1. Поддерживаемые активы: Смарт-контракт должен поддерживать два типа активов: "Токены" и "Заимствуемые токены". Вы можете выбрать любые токены на базе Ethereum (например, DAI, USDC) для этой цели.
  2. Вклады: Пользователи должны иметь возможность вносить Токены в смарт-контракт. Вклады должны отслеживаться индивидуально для каждого пользователя. Пользователи могут вносить любое количество Токенов.
  3. Процентная ставка: Реализуйте простой механизм процентной ставки. Смарт-контракт должен рассчитывать и начислять проценты периодически. Для простоты вы можете выбрать фиксированную годовую процентную ставку.
  4. Заимствование: Пользователям должно быть разрешено заимствовать Заимствуемые токены на фоне их внесенных Токенов. Сумма, которую пользователь может взять в заимствование, должна зависеть от коэффициента залога (например, 75% от стоимости залога).
  5. Погашение: Заемщики должны иметь возможность погасить взятую сумму, включая начисленные проценты, в любое время. Погашение должно разблокировать залог для заемщика.