Ethereum 为什么我的提取函数消耗无限的气体?这是一个相当简单的函数
这是我有史以来第一个固体合同,我不明白为什么我的提取函数消耗无限的气体。当我编写合同时,它给出了一个警告 多功能水龙头的气体要求。抽出装置256高:无限大。 如果某个功能的气体要求高于块气体限值,则无法执行该功能。请避免在函数或操作中出现修改大存储区域的循环—包括清除或复制存储中的阵列Ethereum 为什么我的提取函数消耗无限的气体?这是一个相当简单的函数,ethereum,solidity,remix,metamask,Ethereum,Solidity,Remix,Metamask,这是我有史以来第一个固体合同,我不明白为什么我的提取函数消耗无限的气体。当我编写合同时,它给出了一个警告 多功能水龙头的气体要求。抽出装置256高:无限大。 如果某个功能的气体要求高于块气体限值,则无法执行该功能。请避免在函数或操作中出现修改大存储区域的循环—包括清除或复制存储中的阵列 pragma solidity ^0.5.11; //Our First Contract is a Faucet contract Faucet { //Deposits ethers function
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);
}
}
}
注意:我已经成功地部署了合同,但是事务失败了,因为它们耗尽了资源。是由于此警告吗?更新
如果您希望在不调用其任何函数的情况下将以太发送到协定,则需要在该协定中具有回退函数
在合同中添加此功能:
function () external payable {}
代码看起来不错
我在实际运行代码时也没有遇到任何问题。
有时错误消息并不准确。也许你会用价值来取款
您可以使用来测试它。更新
如果您希望在不调用其任何函数的情况下将以太发送到协定,则需要在该协定中具有回退函数
在合同中添加此功能:
function () external payable {}
代码看起来不错
我在实际运行代码时也没有遇到任何问题。
有时错误消息并不准确。也许你会用价值来取款
您可以使用来测试它。它给出了一个警告,即功能水龙头的气体要求。抽出装置256高:无限我已成功部署它,但每当我发送一些以太时,事务都会失败,因为气体已全部使用,有什么提示吗?合同公钥是0x11aC92886904c05C5f4b82E1E031Dded356EB828您可以自己检查我也会更新我的问题检查一下:它给出了功能水龙头的警告气体要求。提取单元256高:无限我已成功部署它,但每当我发送一些以太时,事务都会失败,因为气体已全部使用,有什么问题吗?合同公钥是0x11aC92886904c05C5f4b82E1E031Dded356EB828您可以自己检查我也会更新我的问题检查此项: