Я создал контракт с помощью Remix.
Когда я запускаю функцию burnFrom()
, она показывает:
gas required exceeds allowance or always failing transaction.
Что я делаю не так?
function burnFrom(address _from, uint256 _value) onlyOwner public returns
(bool success) {
require(balanceOf[_from] >= _value);
require(_value <= allowance[_from][msg.sender]);
balanceOf[_from] -= _value;
allowance[_from][msg.sender] -= _value;
totalSupply -= _value;
emit Burn(_from, _value);
return true;
}
Убедитесь, что вы либо используете виртуальную машину javascript, либо у вас разблокирована метамаска и вы подключены к тестовой сети, если используете внедренный web3.
Убедитесь, что у вас есть сопоставление допусков, которое выглядит следующим образом:
mapping(address => mapping(address => uint256)) public allowance;
И что ваше событие Burn выглядит так:
event Burn(address indexed from, uint256 value);
Если у вас оба они правильные, вероятно, что-то не так с модификатором onlyOwner.
Прашант Прабхакар Сингх