Аудит контракта EasyInvest LONGLIFE

Аудит контракта EasyInvest LONGLIFE


Разбор кода EasyInvest LONGLIFE

Контракт: 0xCFD2047eB61412E9B8dE511Dc2087e07003829EE

Исходный код: https://etherscan.io/address/0xcfd2047eb61412e9b8de511dc2087e07003829ee#code

Краткий вывод:

Код безопасен. Ошибок не обнаружено. Работает код так же как и заявлено. Разработчики не имеют доступа к средствам, находящимся на контракте.

Ну а теперь давайте разберём код контракте EasyInvest LONGLIFE более подробно


В строке 1 объявляется версия компилятора для solidity

В строке 2 идёт название контракта FifteenPlus

В строке 3 создаётся переменная типа address в которой хранится адрес владельца контракта для перечисления комиссии в размере 1%. По словам создателей контракта данные средства необходимы для рекламы. В любом случае 1% практически никак не влияет на общий фонд

В строке 4 создаётся переменная для обращения к самому контракту, которая используется для отправки комиссии в размере 1% на адрес владельца

В строке 5 создаётся маппинг, специальный массив, который будет хранить в себе общую сумму вклада каждого инвестора

В строке 6 создаётся маппинг для запоминания суммы, которая уже была выплачена каждому инвестору. Это необходимо для регулирования процентной ставки, которая изменится от 15 до 1,5%, когда инвестору будет выплачен полный депозит

В строках 8 и 9 создаются временные метки, которые необходимы для рассчета выплат

В строке 10 в маппинге хранится процентная ставка для каждого вкладчика(15% или 1,5%)

Теперь перейдем к основной логике контракта

В строке 12 находится конструктор, который запоминает адрес создателя контракта для выплаты комиссии

В строке 14 объявляется функция external payable, которая вызывается всякий раз при отправке любого количества(даже 0) эфира на адрес контракта

В строках 15-18 осуществляется отправка комиссии в размере 1% от средств, находящихся на балансе контракта. Комиссия отправляется владельцу не чаще раза в сутки при отправке средств на контракт любым инвестором. Очень необычная и интересная реализация, которая не отщипывает процент от каждого вклада и не нарушает стабильность работы контракта.

В строках 19-23 осуществляется выплата инвестору сделавшему вклад в проект. В случае если вклад первый, выплата не осуществляется. Если же инвестор уже вкладывал в проект и решил вложить ещё, или же запросил выплату путем отправки 0ETH, то контракт отправит инвестору сумму, которая рассчитывается по формуле: (общий размер вклада) x (процентная ставка) x (кол-во часов с момента последнего вклада/24). Здесь нет никаких отличий по сравнению с оригинальным кодом EasyInvest

В строках 24-25 запоминается время с момента последней выплаты, а также обновляется баланс вкладчика(в случае если вкладчик дополнил свой вклад)

И наконец, в строках 27-30 обновляется процентная ставка вкладчика в зависимости от того, вывел ли сумму, превышающую его депозит или нет

На этом код контракта заканчивается. Надеюсь, данный обзор был полезен. Спасибо за внимание


Report Page