Смарт-контракт solidity с защитой от потери средств
6 500 руб. за проект
Требуется написать смарт-контракт для выплат с защитой от потери средств
Условия:
3 месяца -- 2,5%
6 месяцев -- 5%
1 год -- 15%
2 года -- 20%
На смарт-контракт изначально переводится ограниченное количество токенов BEP20.
Далее человек выполняет функцию stake (uint256 amount, uint256 day) -- указывает кол-во токенов и период (90/180
360/720) в днях. По прошествии времени можно выполнить claim -- сбор своих средств плюс процент.
В смарт-контракте есть проблема -- нет защиты от следующих ситуаций:
1) Ситуация 1
Токены на смарт-контракте заканчиваются и в определенный момент последние пользователи смарт-контракта перестают иметь возможность вернуть средства. Пример: на контракте 100 токенов, а выплата для пользователя превышает сумму в любом случае, что с процентом, что без
2) Ситуация 2
Токенов на смарт-контракте хватает, но происходит следующая ситуация. Юзер А заходит с небольшой суммой на длительный срок, а Юзер Б с огромной суммой на короткий срок. В итоге Юзер Б получает свою выплату, а Юзер А остается ни с чем
Имеется в виду добавить защиту от данных ситуаций. Конкретного решения предложить не могу, кроме как для решения одной из ситуаций — просто запрещать пользоваться функцией stake в случае, если на балансе смарт-контракта при выплате будет меньше, чем нужно хотя бы для того, чтобы вернуть всё обратно без процентов (про проценты молчу). Но даже в этом случае надо ещё параллельно проверять наличие других юзеров и их суммы на выплаты
Условия:
3 месяца -- 2,5%
6 месяцев -- 5%
1 год -- 15%
2 года -- 20%
На смарт-контракт изначально переводится ограниченное количество токенов BEP20.
Далее человек выполняет функцию stake (uint256 amount, uint256 day) -- указывает кол-во токенов и период (90/180
360/720) в днях. По прошествии времени можно выполнить claim -- сбор своих средств плюс процент.
В смарт-контракте есть проблема -- нет защиты от следующих ситуаций:
1) Ситуация 1
Токены на смарт-контракте заканчиваются и в определенный момент последние пользователи смарт-контракта перестают иметь возможность вернуть средства. Пример: на контракте 100 токенов, а выплата для пользователя превышает сумму в любом случае, что с процентом, что без
2) Ситуация 2
Токенов на смарт-контракте хватает, но происходит следующая ситуация. Юзер А заходит с небольшой суммой на длительный срок, а Юзер Б с огромной суммой на короткий срок. В итоге Юзер Б получает свою выплату, а Юзер А остается ни с чем
Имеется в виду добавить защиту от данных ситуаций. Конкретного решения предложить не могу, кроме как для решения одной из ситуаций — просто запрещать пользоваться функцией stake в случае, если на балансе смарт-контракта при выплате будет меньше, чем нужно хотя бы для того, чтобы вернуть всё обратно без процентов (про проценты молчу). Но даже в этом случае надо ещё параллельно проверять наличие других юзеров и их суммы на выплаты
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.