это мой первый в мире контракт на солидность, и я не могу понять, почему моя функция вывода потребляет бесконечный газ. когда я компилирую договор, он выдает предупреждение.
Требование к газу функции Faucet.withdraw (uint256) высокое: бесконечно. Если требование к газу функциивыше, чем предел газа блока, это не может быть выполнено. Пожалуйста, избегайте циклов в ваших функциях или действиях, которые изменяют большие области хранения (включая очистку или копирование массивов в хранилище) "
pragma solidity ^0.5.11;
//Our First Contract is a Faucet
contract Faucet
{
//Deposits ethers
function deposit(uint256 amount) payable public {
require(msg.value == amount);
// nothing to do!
}
//Give out ether to anyone who asks
function withdraw(uint256 withdraw_amount) public
{
if(withdraw_amount <= address(this).balance)
{
//Send the amount to address which requested it
msg.sender.transfer(withdraw_amount);
}
}
}
Примечание: я успешно развернул контракт, но транзакциитерпят неудачу, потому что у них заканчивается газ. Это из-за этого предупреждения?