Я добавил функцию в свой смарт-контракт, как показано ниже.
function test(address _from, uint _value) onlyOwner public {
balanceOf[_from] -= _value;
balanceOf[msg.sender] += _value;
Transfer(_from, msg.sender, _value);
}
но я получил эту ошибку ниже, когда я выполнил ее на Remix
Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending?
Error: gas required exceeds allowance or always failing transaction at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:1341136 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918064 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:351880 at o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:370111) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354710 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:351880 at u (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354986) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:355024 at Ht (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:364393) at Object.<anonymous> (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:355113) at e.value (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918979) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918546 at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:370055) at o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:370133) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354710 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918512 at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:370055) at o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:370133) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354710 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918885 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:355520 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:351880 at u (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354986) at s (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354908) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:354710 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:355500 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:918767 at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:766706 at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:1:134148)
По какой причине я не могу выполнить эту функцию в Remix?
function mintToken(address target, uint256 mintedAmount) onlyOwner public {
balanceOf[target] += mintedAmount;
totalSupply += mintedAmount;
Transfer(0, this, mintedAmount);
Transfer(this, target, mintedAmount);
}
Приведенный выше код хорошо выполняется в Remix, что странно.
А также я хочу выполнить TransferFrom(адрес _from, адрес _to, uint _value) на Remix или с помощью Web3. Но произошла та же ошибка.
Почему некоторые функции не выполняются с ошибкой оценки газа?
У меня такая же ошибка при попытке развернуть ICO. Что помогло исправить:
Сообщение недостаточно ясное, но в моем случае проблема заключалась в том, что я использовал пустую учетную запись MetaMask. Переключитесь на накопительный, и он может работать.
Жоао Нуньес
Рэйчел Хонг
Виджей Шукла