Intentando transferir fondos usando el identificador de token ERC20 y llamando a 'transferFrom'. Suponga que el monto específico está aprobado previamente por la cuenta del propietario para la dirección del contrato 'MyContract'.
contract StandardToken {
function transferFrom(address from, address to, uint value);
}
contract MyContract{
address _addrToken;
function MyContract(address addrToken){
_addrToken = addrToken;
}
event FundAcquired(address owner, uint256 amount);
function acquireFund(address owner, uint256 amount){
StandardToken token = StandardToken(tokenAddr);
token.transferFrom(owner, this, amount);
FundAcquired(owner, amount);
}
}
Al llamar a través de web3js, los resultados de la función 'acquireFund' seguirán el error.
Excepción: Error: Excepción de máquina virtual al procesar la transacción: revertir
Alguien me puede orientar con cual es el problema?
Cambiar tokenAddr
a _addrToken
.
Creo que debería ejecutar primero Token.Approve(MyContract.address) para establecer la asignación, de modo que el contrato pueda gastar tokens del propietario.
usuario19510
tokenAddr
. ¿ Debería decir eso_addrToken
en su lugar? (Pero esa no puede ser la causa del error que está viendo, ya que sería un problema de tiempo de compilación). De manera similar, no veo una definición paraowner
nada.Rob Magier