receive函数
- 原型:receive() external payable;
- 作用:接受外部转账时需要实现此函数;
fallback函数
- 原型:fallback() external [payable];
- 作用:合约函数调用不匹配且合约未实现receive函数,则触发fallback函数执行;
示例代码如下:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
contract receive_demo{
uint256 totalAmount;
address[] public addrs;
receive() external payable{
totalAmount+=msg.value;
addrs.push(msg.sender);
}
function getBalance()public view returns(uint256,uint256)
{
return(totalAmount,address(this).balance);
}
fallback() external{}
}
通过这两个特殊函数,我们就可以实现外部转账的功能,比如从metamask账户转账到该合约中。
本文介绍了智能合约中的两个关键函数:receive()和fallback(),用于处理外部转账。当合约接收到资金时,receive函数自动执行,增加合约的总金额并记录发送者地址。如果调用不匹配,fallback函数作为备用执行。示例代码展示了如何在合约中实现这些功能,以便从MetaMask等钱包向合约转账。
7054

被折叠的 条评论
为什么被折叠?



