SoyFinance / smart-contracts

11 stars 9 forks source link

BugBounty: inconsistency in return functions and real swaps #2

Closed Upaut1 closed 2 years ago

Dexaran commented 3 years ago

The discussion of this issue is going on dedicated Telegram channel

yuriy77k commented 3 years ago

Issue not confirmed.

Upaut1 commented 3 years ago

Функции getAmountsOut и getAmountsIn в SoyFinanceRouter.sol никак не проверяют маршрут на наличие повторяющихся адресов пар (пулов). При вызове этих функций на чтение я буду видеть сколько токенов я получу на выходе, но в действительности при реальных свопах маршрут с повторяющимися парами не пройдет, в пределах одной транзакции, разумеется. Такая транзакция будет отклонена. Если по правильному, то функции getAmountsOut и getAmountsIn, при чтении контракта, должны давать ошибку при использовании в маршруте повторяющихся пар, а не выводить данные которые в действительности не могут быть исполнены.

yuriy77k commented 2 years ago

Функции getAmountsOut и getAmountsIn используются для вычисления предполагаемого результата (которые может и отличаться от реальности в зависимости от ситуации). Поэтому нельзя 100% полагаться на их результат.

Так как эта особенность не несет риска для пользователей, добавление дополнительной проверки на повторение в маршруте потребует дополнительных затрат газа при каждом обмене. Для минимизации расхода газа нет необходимости добавлять эту проверку.

Upaut1 commented 2 years ago

Я Вас услышал. Тема закрыта.