Когда я помечаю простую функцию с типом internal , remix выдает предупреждение о бесконечной оценке газа. Без этого типа все нормально. Пожалуйста, вы знаете, почему?
function half(uint a) { uint b = a/2; //... }
-> Оценка газа для "половины (uint256)": "230"
function half(uint a) internal { uint b = a/2; //... }
-> Оценка газа для «половины (uint256)»: «бесконечно»
Что-то еще происходит в функции, потому что у меня не было этой проблемы в ремиксе.
pragma solidity ^0.4.19;
contract StackEthereumTholoz {
function start(uint _int) public pure returns (uint) {
return half(_int);
}
function half(uint _a) internal pure returns (uint) {
uint b = _a/2;
return b;
}
}
Газ: 72
Итак, основываясь на вашем коде (и минимальном примере кода), когда internal
контракт фактически не используется, Remix не может фактически рассчитать стоимость газа. Он автоматически установит его бесконечным по умолчанию.
pragma solidity ^0.4.19; contract Infinite { function half(uint a) internal{ uint b = a/2; } }
даже когда я добавляю чистый, он продолжает выдавать бесконечную оценку газа
.
пользователь19510
Толоз