address.call.value(amount)( ) 方法对我不起作用
address.call.value(amount)( ) method is not working with me
我在 solidity 中写了一个非常简单的方法来将以太币发送到账户,但不幸的是它不起作用
(已经尝试发送和传输方法)
function sendByCallValue(address payable _receiver, uint _amount) public payable {
(bool success, ) = _receiver.call{value:_amount}("");
require(success, "Transfer failed.");
}
我通过传递地址和数量从 REMIX IDE 调用此函数,但它抛出错误。
在图片中你会发现:
to : NftStaker.sendByCallValue(address,uint256) 0xEf9f1ACE83dfbB8f559Da621f4aEA72C6EB10eBf
我觉得应该是这样的
to : 0xEf9f1ACE83dfbB8f559Da621f4aEA72C6EB10eBf
我不确定是哪个东西抛出了错误。
交易输出显示您正在通过交易传递 0 wei,并尝试从合约地址发送 10 wei。
它没有显示合约拥有多少,但假设它少于 10 wei,交易失败,因为 .call()
试图从合约发送超过它拥有的。
您可以指定 value
与 Remix IDE 的“部署 & 运行 交易”中的交易一起发送。
我在 solidity 中写了一个非常简单的方法来将以太币发送到账户,但不幸的是它不起作用
(已经尝试发送和传输方法)
function sendByCallValue(address payable _receiver, uint _amount) public payable {
(bool success, ) = _receiver.call{value:_amount}("");
require(success, "Transfer failed.");
}
我通过传递地址和数量从 REMIX IDE 调用此函数,但它抛出错误。
在图片中你会发现:
to : NftStaker.sendByCallValue(address,uint256) 0xEf9f1ACE83dfbB8f559Da621f4aEA72C6EB10eBf
我觉得应该是这样的
to : 0xEf9f1ACE83dfbB8f559Da621f4aEA72C6EB10eBf
我不确定是哪个东西抛出了错误。
交易输出显示您正在通过交易传递 0 wei,并尝试从合约地址发送 10 wei。
它没有显示合约拥有多少,但假设它少于 10 wei,交易失败,因为 .call()
试图从合约发送超过它拥有的。
您可以指定 value
与 Remix IDE 的“部署 & 运行 交易”中的交易一起发送。