делает Данил Ленков
Описание:
Реализовать смарт-контрактный протокол для двусторонних репо-сделок (продажа с обязательством обратного выкупа). Участники фиксируют условия: цену, срок, ставку и залог в токенах ERC-20. После истечения срока актив автоматически переходит к стороне, выполнившей обязательство, или ликвидируется в случае дефолта.
Обязательные фичи
- Создание и исполнение сделки — контракт фиксирует стороны (lender, borrower), сумму, залог, процент и срок. При деплое обе стороны депонируют активы, и сделка переходит в статус
Active.
- Автоматический расчёт и погашение — по наступлении срока контракт разрешает погашение с учётом процентов; при успешном возврате активы и залог разблокируются.
- Дефолт и ликвидация — если срок истёк, а долг не возвращён, контрагент получает залог; реализовать механизмы безопасного перевода и обновления статуса сделки.
Advanced (для 10/10)
- Floating-rate Oracle: интеграция с внешним оракулом для расчёта плавающей ставки (например, на основе Chainlink Data Feeds или TWAP по stETH/ETH).
- NFT-репрезентация позиций: каждая активная сделка выпускается как ERC-721, отражающая состояние и условия контракта; передача токена = передача права требования по репо.