Привет всем, я развернул контракт erc20 в основной сети, все работает нормально, но когда я отправляю эфир на адрес контракта, у меня возникает эта ошибка: Внимание! Ошибка при выполнении контракта [Отменено] я не понимаю, почему. TxHash: 0x835d9b4106c279e116f97cc6038c6e12004aaac5408ac862436b0d8fc07ea94f адрес контракта: 0xACdDb1b4a5527af01ED85C74F43F90ecD1276b8E
Спасибо,
Кажется, это условие не выполняется
require(balances[fundsWallet] >= amount);
Я проверил остальную часть кода контракта, и вы не принимаете во внимание нахождение msg.value
в Wei, а не в ETH.
Ваша функция покупки
function() payable{
totalEthInWei = totalEthInWei + msg.value;
uint256 amount = msg.value * unitsOneEthCanBuy;
require(balances[fundsWallet] >= amount);
balances[fundsWallet] = balances[fundsWallet] - amount;
balances[msg.sender] = balances[msg.sender] + amount;
Transfer(fundsWallet, msg.sender, amount); // Broadcast a message to the blockchain
//Transfer ether to fundsWallet
fundsWallet.transfer(msg.value);
}
Следует учитывать, что msg.value
есть в Вэй
uint256 amount = msg.value * unitsOneEthCanBuy / 1000000000000000000;
И вам не нужно генерировать Transfer()
событие, потому что оно уже генерировано в transfer()
функции.
Таким образом, ваша функция должна быть
function() payable{
totalEthInWei = totalEthInWei + msg.value;
uint256 amount = msg.value * unitsOneEthCanBuy / 1000000000000000000;
require(balances[fundsWallet] >= amount);
balances[fundsWallet] = balances[fundsWallet] - amount;
balances[msg.sender] = balances[msg.sender] + amount;
//Transfer ether to fundsWallet
fundsWallet.transfer(msg.value);
}
тыюп
тыюп
Даниэль Лука КлинЕдинорог
тыюп
тыюп
Даниэль Лука КлинЕдинорог