TRONex Аудит
Address TRON Main Network: TWiti6GpPJPRXtCFKURdTtxN7UEcurQoeS
Заключение:
В контракте TRONex не было обнаружено критических замечаний (уязвимостей или бэкдоров). Код был построчно проаудирован на предмет всех известных и возможных проблем.
Смарт-контракт соответствует всем стандартам и безопасен для использования в основной сети.
Критические ошибки (критическая, высокая опасность): 0
Ошибки и уязвимости, которые могут вести к потере, краже или намеренному выводу средств на адреса третьих лиц (бэкдоры). Недопустимые ошибки и баги для деплоя на основную сеть. Важные предупреждения для владельцев, клиентов или инвесторов проекта.
Проблемы, баги и предупреждения (средняя, низкая опасность): 0
Баги и ошибки, возможности нарушения запланированной структуры, функционала или логики смарт-контракта. Отсутствие необходимых предосторожностей в коде. Прочие предупреждения.
Возможности оптимизации (очень низкая опасность): 1
Возможности снизить стоимость транзакций при использовании смарт-контракта или уменьшить размер хранимых данных в блокчейне.
Примечания и рекомендации (очень низкая опасность): 2
Прочие заметки, рекомендации и предложения, а также проблемы, не влияющие на функционал смарт-контракта.
ВОЗМОЖНОСТИ ОПТИМИЗАЦИИ
1. Запись статистических параметров в блокчейн (очень низкая опасность):
Список статистических параметров, запись в которые повышают стоимость транзакций и увеличиваем объем данных хранящихся в блокчейне:
uint256 public totalUsers;
uint256 public totalInvested;
uint256 public totalWithdrawn;
uint256 public totalDeposits;
Рекомендация: используйте ивенты и логгируйте данную информацию вместо записи в блокчейн.
Примечание: данный пункт не влияет на функционал смарт-контракта.
ПРИМЕЧАНИЯ:
2. Циклы по параллельным депозитам (очень низкая опасность):
В функциях withdraw, getUserDividends, getUserAvailable, getUserTotalDeposits, getUserTotalWithdrawn циклы неограниченно растут при увеличении количества депозитов. При создании большого количества параллельных депозитов с одного кошелька это может привести к чрезмерному повышению стоимости транзакции и некорректным отображению и обработке информации.
Примечание: данный комментарий актуален только для определенного юзера, при условии создания чрезмерного количества депозитов (более 300) с его кошелька.
3. Закрытие последней выплаты (очень низкая опасность).
В случае если у последнего покидающего проект пользователя выплата будет больше чем баланс смарт-контракта – он получит весь доступный остаток на балансе, но при этом будет зафиксировано, что была закрыта вся выплата.
Примечание: данный комментарий не критичен, так как после опустошения баланса смарт-контракта маловероятно что контракт будет использоваться вновь. Поэтому последнему пользователю выгодно получить хоть какую-либо сумму.
НЕЗАВИСИМОЕ ОПИСАНИЕ ФУНКЦИОНАЛА СМАРТ-КОНТРАКТА:
Контракт TRONex обеспечивает пользователю возможность инвестировать любую сумму в TRX (от 100 trx включительно) в контракт и получить 200% возврат инвестиций, в случае если на балансе контракта будет достаточно средств для выплаты.
Создать депозит можно вызвав функцию invest, приложив к транзакции необходимое количество TRX (от 100 trx включительно).
Каждый последующий вклад ведется раздельно в контракте, с целью сохранения суммы выплаты по каждому депозиту.
Начисляемый пользователю процент начинается от 1% и зависит от следующих факторов:
За каждые 1 000 000 TRX на балансе смарт-контракта +0.1%.
За каждый 1 день невывода дивидендов со смарт-контракта +0.1% (при создании повторных депозитов счетчик не сбивается).
Сумма к выплате начинает насчитываться сразу после вклада, вывод доступен в любое время.
Вывод пользователем осуществляется вызовом функции withdraw с адреса, с которого был сделан депозит.
Комиссия владельцев контракта: часть вложенных средств отправляется на два адреса: (адрес маркетинг) – 8%. (адрес проджект) – 2%.
Трехуровневая реферальная программа: в функции invest можно указать адрес реферера в результате чего реферер получит к выводу % от депозита инвестора по следующей таблице:
Уровень реферера | 1 | 2 | 3 |
Процент, % | 5 | 2 | 0.5 |
Требования к указываемому рефереру: реферером нельзя указать собственный кошелек, а также кошелек не имеющий хотя бы одного вклада в смарт-контракте.
Реферер указывается одноразово в момент любого вклада и закрепляется за пользователем без возможности изменения. С каждого последующего вклада процент также будет начисляться рефереру.
В контракте присутствуют 13 статистических функций не требующих отправки транзакций:
getContractBalance – баланс смарт-контракта (со знаками после запятой, для TRX – 6 знаков).
getContractBalanceRate – текущий процент для нового пользователя (1% базовой доходности + 0.1% за каждый миллион TRX на балансе).
getUserPercentRate – текущий процент для указанного пользователя (1% базовой доходности + 0.1% за каждый миллион TRX на балансе + 0.1% за каждый день невывода дивидендов)
getUserDividends – текущая доступная сумма дивидендов к выводу.
getUserCheckpoint – дата последнего вывода в UNIX Time.
getUserReferrer – реферер пользователя.
getUserReferralBonus – доступные реферальные бонусы к выводу.
getUserAvailable – общая доступная сумма к выводу (дивиденды + реферальные бонусы).
isActive – есть ли у пользователя активные вклады.
getUserDepositInfo – информация по указанному депозиту пользователя (порядковый номер депозита начиная с 0).
getUserAmountOfDeposits – количество депозитов пользователя.
getUserTotalDeposits – сумма депозитов пользователя.
getUserTotalWithdrawn – сумма выводов дивидендов пользователя.
Дисклеймер:
Данный аудит не является призывом к участию в проекте и относится только к коду указанного смарт-контракта.
Если у вас остались вопросы по разработке или аудиту смарт-контракта, пожалуйста свяжитесь с нами и мы проконсультируем вас по всем моментам.
Telegram: @gafagilm
E-mail: info@grox.solutions