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 можно указать адрес реферера в результате чего реферер получит к выводу % от депозита инвестора по следующей таблице:

Уровень реферера123
Процент, %520.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

Статьи. Публичные аудиты

Верификация TRON

Инструкция по верификации контракта на Tronscan

Подробнее

TRON DEPLOYMENT

Инструкция по деплою с помощью TRONLINK & TronScan

Подробнее

TRONex Аудит

Аудит смарт-контракта TRONex

Подробнее

Как опубликовать код Смарт-Контракта?

Инструкция по верификации контракта на Etherscan

Подробнее

Как задеплоить Смарт-Контракт?

Инструкция по деплою с помощью Remix & Metamask

Подробнее

Платформы для реализации Смарт-Контрактов

Свойства и отличия Ethereum, TRON, EOS и Waves

Подробнее

Аудит Смарт-Контракта

Что такое аудит и зачем он нужен? Виды аудитов, цены и пример отчета.

Подробнее

Аудит «Neuromachine Eternal»

Публичный аудит Смарт-Контракта "NRM"

Подробнее

Что требуется для создания собственного токена?

Список вопросов для Технического Задания.

Подробнее

Что такое Смарт Контракт?

В чем заключается суть технологии Смарт-Контрактов? Определение и краткое описание.

Подробнее

Применение Смарт-Контрактов

Где и для чего применяются Смарт-Контракты в реальной жизни?

Подробнее

Пример работы Смарт-Контракта

Конкретная иллюстрация использования Смарт-Контракта на примере Краудфандинга

Подробнее

Функция ApproveAndCall для ERC20

Что такое ApproveAndCall и для чего ее имплементируют в Смарт-Контракты?

Подробнее

Проблемы стандарта ERC20

Каковы минусы и ограничения стандарта ERC20? EventHandling, Re-Approval Attack

Подробнее

ICO (CrowdSale)

Что такое Краудсейл? Что необходимо знать, чтобы провести свое ICO?

Подробнее

Токены

Что такое токены и какими они бывают? ERC20 или ERC223? Utility или Security?

Подробнее
Загрузить еще
Закрыть