Metamask-Transaktion erscheint nicht in Ganache

Ich versuche, die Funktion storeQueryResults() meines Smart Contracts auf folgende Weise aufzurufen:

storeInput: function(event) {
    var queryResultHandlerinstance;

    App.contracts.QueryResultHandler.deployed().then(function(instance) {
      queryResultHandlerinstance = instance;
      return queryResultHtandlerinstance.storeQueryResults(1, 2, "a", "b", {
        from: web3.eth.accounts[0]
      });
    }).then(function(result) {
      alert("success");
    }).catch(function(err) {
      alert(err.message);
    });
  },
};

Dann, nachdem ich die Transaktion in Metamask bestätigt habe, kann ich sehen, dass sie dort genehmigt ist:Metamask_printscreen

In Ganache passiert jedoch nichts:Ganache_printscreen

Antworten (2)

Also, ich habe es herausgefunden. Vorübergehend habe ich MetaMask entfernt und es nur mit Ganache ausprobiert. Dann bekam ich eine richtige Fehlermeldung, die besagte, dass die Transaktion das Gaslimit überschreitet. Daher habe ich 'gas: 3000000' als Parameter hinzugefügt, sodass meine Transaktion so aussieht:

App.contracts.QueryResultHandler.deployed().then(function(instance) {
    queryResultHandlerinstance = instance;

    return queryResultHandlerinstance.storeQueryResults(1, 2, "a", "b", {
        from: web3.eth.accounts[0],
        gas: 3000000
    });
}).then(function(result) {
    alert("success");
    }
}).catch(function(err) {
  alert(err.message);
});

Als Fazit denke ich nicht, dass MetaMask Fehler richtig zurückgibt und die explizite Definition des Gaslimits wichtig ist.

Ich habe auch Schwierigkeiten, Transaktionen auf der Registerkarte „Transaktionen“ in Ganache anzuzeigen. Können Sie die Transaktion auf der Registerkarte „Protokolle“ sehen?