错误:此合同具有应付回退功能,但没有接收以太功能。考虑添加一个接收以太函数。
这是我的代码:
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.16;
contract MyContract {
 string public functionCalled;
 function sendEther () external payable {
     functionCalled = 'sendEther';
 }
 fallback () external payable {
     functionCalled = 'fallback';
 }
}发布于 2020-12-06 16:21:22
备用函数以两种方式使用:接收以太付款和作为功能调度器。
为了提高可读性和提高安全性,将其分为两个功能。
如果您只想接受付款,只需实现接收。来自坚实性文件
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.8.0;
// This contract keeps all Ether sent to it with no way
// to get it back.
contract Sink {
    event Received(address, uint);
    receive() external payable {
        emit Received(msg.sender, msg.value);
    }
} 为了向后兼容,可以将回退声明为应付款。编译器显示一个警告,但它应该像往常一样工作。只是要意识到,在未来,它可能会被废弃。
https://ethereum.stackexchange.com/questions/90810
复制相似问题