我试着把以太从合同转到一个地址,但是它给出了一个错误,那就是交易已经用完了。我想这是个小问题,但我找不到。我必须特别使用SolityVersion0.4.24。
我尝试过不同的方法,比如:
address.transfer(amount);
address.send(amount);
address.call.value(amount)( );所有的方法都会给出同样的气体例外。而发送和调用方法也会给出一个警告,它已经过时,我应该使用传输方法。
我也试图调整气体,但它没有工作,我也尝试了所需的2,300的转让名单上的文档。
守则:
pragma solidity ^0.4.24;
contract TestContract {
function payAddress(address _address) external payable {
_address.transfer(msg.value);
}
}如果问题是合同没有任何可转移的以太,那么它能使用函数调用发送的以太吗?还是问题出在别的地方?
感谢您的阅读。
编辑:
我试着把以太派到我的合同上,这很管用,我现在已经签了合同,但是这个函数仍然给出了和以前一样的错误。所以问题出在别的地方。
当前代码:
pragma solidity ^0.4.24;
contract TestContract {
function() external payable { }
function payContract() public payable {}
function paySomeone(address _address, uint256 _amount) external {
_address.transfer(_amount);
}
function getBalance() public view returns (uint256) {
return address(this).balance;
}
}正如你在这里看到的,合同的余额是10维,但是当我试图发送9维时,它仍然给出了同样的气体错误。我还从Remix那里得到了和以前一样的错误。
https://stackoverflow.com/questions/54088699
复制相似问题