📅  最后修改于: 2023-12-03 15:05:14.444000             🧑  作者: Mango
在Solidity智能合约中,回退函数(Fallback function)是一个特殊的函数,用于处理向合约发送的以太币或者调用未定义的函数。
回退函数是可选的,如果合约没有定义回退函数,或者调用了未定义的函数,合约将会抛出一个异常。
为了创建一个回退函数,只需要在合约中定义一个没有名称和任何参数的函数,并将其标记为 payable
,表示合约可以接收以太币。当向合约发送以太币时,默认会调用回退函数。
以下是一个简单的Solidity合约示例,展示了回退函数的使用:
contract MyContract {
// 回退函数
fallback() external payable {
// 处理转账逻辑
}
}
下面是一个完整的合约示例,展示了回退函数的使用和如何处理以太币的转账:
contract MyContract {
mapping(address => uint256) public balances;
// 回退函数
fallback() external payable {
// 存储发送者的余额
balances[msg.sender] += msg.value;
}
// 从合约中提取以太币
function withdraw() external {
uint256 amount = balances[msg.sender];
require(amount > 0, "Insufficient balance");
balances[msg.sender] = 0;
msg.sender.transfer(amount);
}
}
在上述示例中,回退函数会将发送的以太币存储到 balances
映射中。之后,可以通过调用 withdraw
函数从合约中提取以太币。
以上就是Solidity中回退函数的介绍和使用方法,希望能帮助到你!