Задать вопрос
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)

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

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

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

Похожие вопросы