SoyFinance / smart-contracts

11 stars 9 forks source link

BugBounty: Оптимизация пользовательского газа #4

Closed Upaut1 closed 3 years ago

Upaut1 commented 3 years ago

В целях сокращения затрат пользовательского газа рекомендую убрать бессмысленный вызов функции pairFor(factory, tokenA, tokenB) из функции getReserves в файле SoyFinanceRouter.sol, так как функция getReserves используется при реальных обменах

function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {
    (address token0,) = sortTokens(tokenA, tokenB);
    pairFor(factory, tokenA, tokenB);
    (uint reserve0, uint reserve1,) = ISoyFinancePair(pairFor(factory, tokenA, tokenB)).getReserves();
    (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
}
yuriy77k commented 3 years ago

Спасибо за замечание. Так как потеря газа очень не значительная, данная ошибка будет исправлена в следующей версии.

Dexaran commented 3 years ago

The suggested improvement was implemented: https://github.com/SoyFinance/smart-contracts/commit/4c61cd7f0a473e46ee0247ab9877618624c60ec3

Upaut1 commented 3 years ago

The suggested improvement was implemented: 4c61cd7

Могу ли я получить вознаграждение в токене: USDT (ERC-20) Сеть: Ethereum mainnet Адрес: 0xeBE894814554c8382EA6a24CcDdf1527407A24f6

Dexaran commented 3 years ago

The described issue falls under "$100–500 for code flaws that can not violate contract workflow." bounty category.

Since the described finding is a very minor gas optimization I would assign $150 to be paid.

Dexaran commented 3 years ago

https://etherscan.io/tx/0xdea414cbb6466709f4c4587b86da58f638e7d3c743f555e1978a323e27b08b38