LexxXell
@LexxXell
Программист и немного IT-журналист

Имеет ли смысл такой код в solidity?

В одном контракте, заметил странный, на мой взгляд, кусок кода
mapping(address => uint256) private _addressToBalance;
...
uint256 balance = _addressToBalance[msg.sender];
require(balance >= minAmount)

Мне кажется, что создание переменной balance излишне и просто тратит дополнительные 40 единиц газа (проверял на тестах). Ведь можно просто
mapping(address => uint256) private _addressToBalance;
...
require(_addressToBalance[msg.sender] >= minAmount)

Или в этом какой-то смысл есть?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
Вопрос дискуссионный:

Пока, не зная всей картины, видится:
1. Переменная balance используется еще в 5 местах и автор, чтобы не париться, сделал переменную
2. Насколько я понимаю, если переменная объявлена и используется только внутри метода (не пишется в блокчейн), то газ она не тратит. Где 40 газа уходит? При деплое контракта или при вызове?
3. Контракт в тестнете? Там много разного кода деплоят люди разного уровня квалификации...
4. Может, разраб затупил...?) Багу нашли)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы