Das Beispiel Truffle Dapp funktioniert nicht, wenn Metamask aktiv ist. Ich führe testrpc aus, ich habe den privaten Schlüssel des tesrpc-Kontos in Metamask importiert und Metamask stellt gemäß dem Chrome-Konsolenprotokoll eine Verbindung zum lokalen testrpc her:
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
Metamask zeigt jedoch kein Ether-Guthaben auf dem Konto an und die Dapp-Seite zeigt eine leere Zeichenfolge für das Metacoin-Guthaben.
Ich habe es debuggt und es scheint, dass web.3eth.getBalance die Callback-Funktion nie aufruft, wenn Metamask aktiv ist:
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);
}
}
);
Es funktioniert perfekt, wenn Metamask nicht aktiv ist.
Installieren Sie Metamask neu, erstellen Sie ein neues Metamask-Konto und importieren Sie dann denselben privaten Schlüssel für das testrcp-Konto, um das Problem zu beheben.
Ich bin mir nicht sicher, was die Ursache war. Derselbe Code begann nach der Neuinstallation von Metamask zu funktionieren. Ich habe testrpc nicht einmal neu gestartet oder den Code erneut bereitgestellt.
Eine andere Möglichkeit wäre, testrpc mit den Optionen -m und -u zu starten. Die Option -m erfordert eine Zeichenfolge der Wörter, die Sie bei der Erstinstallation von Metamsk erhalten haben. Die Option -u entsperrt das Konto. Die Befehlszeile zum Starten von testrpc würde in etwa so aussehen:
# testrpc -m "Insert your unlock words here" -u 0 -u 1
Wenn Sie testrpc so starten, sehen Sie, dass das erste Konto unter "Verfügbare Konten" das erste Konto Ihres Metamsk ist.
Die Installation von Parity mit Metamask führt dazu, dass Dinge kaputt gehen. Deaktivieren Sie die Parität und es sollte funktionieren. Ich habe eine Stunde damit verbracht, das herauszufinden, aber ich weiß immer noch nicht, warum es funktioniert.
Ich stand vor dem gleichen Problem und jede der Antworten hat mir geholfen, ich habe etwas ausprobiert und es gelöst.
Bei mir hat es funktioniert.
Rexcirus