La aplicación de muestra de trufas no muestra el saldo de Metacoin cuando Metamask está activo

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.

Respuestas (4)

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.

No funciona para mí.

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.

Usé la opción -m para iniciar testrpc para tener siempre las mismas cuentas que importé a Metamask. No he intentado iniciar testrpc con cuentas desbloqueadas. Sin embargo, getBalance no requiere que la cuenta esté desbloqueada, así que dudo que eso haya resuelto el problema.

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ó.

  1. Instalar Metamask
  2. Ejecute la red TestRPC y conéctese a TestRPC (Localhost: 8545) en Metamask
  3. Importe la clave privada de la cuenta en Metamask y seleccione la cuenta
  4. Abre otra terminal y vuelve a migrar el contrato "Truffle Migrate"
  5. Actualiza la página y verás el 10000 Meta

Me funcionó.