Hola a todos, implementé un contrato erc20 en la red principal, todo funciona bien, pero cuando envío ether a la dirección del contrato, aparece este error: ¡Advertencia! Error encontrado durante la ejecución del contrato [Revertido] No entendí por qué. TxHash: 0x835d9b4106c279e116f97cc6038c6e12004aaac5408ac862436b0d8fc07ea94f dirección del contrato: 0xACdDb1b4a5527af01ED85C74F43F90ecD1276b8E
Gracias,
Parece que esta condición no se cumple
require(balances[fundsWallet] >= amount);
Revisé el resto del código del contrato y no tomas en cuenta el msg.value
estar en Wei, no en ETH.
Tu función de compra
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);
}
Habría que tener en cuenta que msg.value
está en Wei
uint256 amount = msg.value * unitsOneEthCanBuy / 1000000000000000000;
Y no necesita emitir el Transfer()
evento porque ya está emitido en la transfer()
función.
Por lo tanto, su función debe ser
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);
}
tuyoup
tuyoup
Daniel Luca CleanUnicornio
tuyoup
tuyoup
Daniel Luca CleanUnicornio