La muestra de Truffle Dapp no funciona cuando Metamask está activo. Estoy ejecutando testrpc, importé la clave privada de la cuenta tesrpc a Metamask y Metamask se está conectando al testrpc local de acuerdo con el registro de la consola de Chrome:
Using web3 detected from external source. If you find that your accounts don't appear or you have 0 MetaCoin, ensure you've configured that source properly. If using MetaMask, see the following link. Feel free to delete this warning. :) http://truffleframework.com/tutorials/truffle-and-metamask
Sin embargo, Metamask no muestra ningún saldo de éter en la cuenta y la página de Dapp muestra una cadena vacía para el saldo de Metacoin.
Lo depuré y parece que web.3eth.getBalance nunca llama a la función de devolución de llamada cuando Metamask está activo:
web3.eth.getBalance(myAccount, web3.eth.defaultBlock,
function(error,result){
if(error) {
console.error("Error while retrieving the balance for address["+myAccount+"]: "+err);
} else {
var balance = web3.fromWei(result.toNumber());
console.debug("Balance for address["+myAccount+"]: "+balance);
}
}
);
Funciona perfectamente cuando Metamask no está activo.
Vuelva a instalar Metamask, cree una nueva cuenta Metamask y luego importe la misma clave privada de la cuenta testrcp para resolver el problema.
No estoy seguro de cuál fue la causa. El mismo código comenzó a funcionar después de la reinstalación de Metamask. Ni siquiera reinicié testrpc ni volví a implementar el código.
Otra posibilidad sería iniciar testrpc con las opciones -m y -u. La opción -m requiere una cadena de palabras que obtuvo cuando instaló Metamsk por primera vez. La opción -u desbloquea la cuenta. La línea de comando para iniciar testrpc se vería así:
# testrpc -m "Insert your unlock words here" -u 0 -u 1
Si inicia testrpc de esta manera, verá que la primera cuenta en "Cuentas disponibles" será la primera cuenta de su Metamsk.
La instalación de Parity con Metamask hace que las cosas se rompan. Deshabilite la paridad y debería funcionar. Pasé una hora resolviendo esto, pero todavía no sé por qué funciona.
Estaba enfrentando el mismo problema y cualquiera de las respuestas me ayudó, probé algo y se resolvió.
Me funcionó.
rexciro