为什么 ERC20 balanceof() 使用常量?

Why does ERC20 balanceof() use constant?

ERC20 代币标准指定 balanceof()constant:

  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }

但是这个函数并没有改变任何东西的状态。那么这里的constant是什么意思呢?

标有常量修饰符的函数做两件事。

  • 任何在函数中更改状态的尝试都不会写入链中。
  • 除非从另一个非常量函数调用,否则来自客户端的调用不会使用气体。

在 ERC20 标准中指定这一点只会确保您遵守这些规则。使用令牌的客户不应该为了获得余额信息而意外地支付消耗的 gas。