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已部署的地址被传入。