TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.48K subscribers
Post #880 905
Баг из протокола Mia

На днях выпустили отчет по аудиту Mia DAO, где был один примечательный med issue, о котором хочется рассказать.

Посмотрите на код ниже и подумайте, в чем тут может быть проблема:

function _normalizeDecimalsMultiple(uint256[] memory _deposits, address[] memory _tokens) internal view
        returns (uint256[] memory deposits)
{
   for (uint256 i = 0; i < _deposits.length; i++) {
      deposits[i] = _normalizeDecimals(_deposits[i], ERC20(_tokens[i]).decimals());
   }
}


Более опытные разработчки, вероятно, сразу поймут, в чем дело. Хотя этот баг был найден всего лишь одним аудитором.

Ответ:

Функция не будет работать, так как deposits никогда не были сохранены в памяти.

Вот как правильно нужно было сделать:

{
  uint len = _deposits.length;      
  deposits = new uint256[](len);
  for (uint256 i = 0; i < len; i++) {
     deposits[i] = _normalizeDecimals(_deposits[i], ERC20(_tokens[i]).decimals());
  }
}

Интересный пример, не так ли?

#bug
  • 👍 12
More from @solidityset
  1. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  2. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  3. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  4. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
  5. Sep 14, 2026Графы повсюду Если вы также следите за новостями в мире ИИ, то наверняка уже все чаще встр…
  6. Sep 10, 2026GTA6, Cyberleek, блокчейн и безопасность Увидел несколько постов (тут и тут) про Cyberleek…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →