我在撰寫以太坊的智能合約時候,為什么transferFrom 的方法里面用了require方法 就會出現錯誤
Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending?
但是我把這個方法改成if判斷了 就沒有這個錯誤了
有沒有人懂這個為什么么 希望能找到答案。
附上transferFrom 代碼
function transferFrom(
address _from,
address _to,
uint256 _value
)
public
returns (bool)
{
require(_to != address(0));
if(_value <= balances[_from])return false;
if(_value <= allowed[_from][msg.sender])return false;
// require(_value <= balances[_from]);// 用require方法會導致每次transferFrom交易gas無法計算報錯 ,所以采用if判斷
// require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/41996.html
標籤:區塊鏈技術
