Fallback功能
Fallback函数是智能合约中定义的安全“默认”函数,在没有其他有效函数可以处理请求时调用。 以太坊的Solidity文档中的原始定义:
Fallback 函数
合约可以有一个未命名的函数。这个函数不能有参数也不能有返回值。 如果在一个到合约的调用中,没有其他函数与给定的函数标识符匹配(或没有提供调用数据),那么这个函数(fallback 函数)会被执行。
除此之外,每当合约收到以太币(没有任何数据),这个函数就会执行。此外,为了接收以太币,fallback 函数必须标记为 payable。 如果不存在这样的函数,则合约不能通过常规交易接收以太币。
Fallback函数
Fallback函数是智能合约中定义的安全“默认”函数,在没有其他有效函数可以处理请求时调用。 以太坊的Solidity文档中的原始定义:
对于波场智能合约,Fallback函数不能在接收普通TRX时触发。 讨论支持的提案遭到拒绝:https://github.com/tronprotocol/TIPs/issues/11。
当在合同上调用无效函数时,波场支持正常的回退流:
pragma solidity ^0.4.23;
contract Test {
uint x;
function() external payable {
x = x + 1;
}
function get() public view returns (uint) {
return x;
}
}
contract Caller {
function callTest(address testAddress) public {
testAddress.call("invalid");
}
}
在上述例子中,合约 Test 有一个后备功能,随每一个无效函数调用而增加 x 。 调用者演示如何调用不存在的函数, x 在每次调用时递增, testAddress作为Test已部署的地址被传入。
Updated about 2 years ago