Ich versuche, die Kommunikation zwischen einem Web-Frontend und einem bereitgestellten Ethereum-Vertrag (auf Rinkeby) zu konfigurieren. Ich versuche, eine einfache Methode aufzurufen, die einen Wert aktualisiert, der ungefähr so aussieht:
uint public value;
function someFunction(uint newValue) public {
value = newValue;
}
Und ich rufe die Funktion so vom Client auf:
myContract.methods.someFunction(newValue).send({
from: myAccount,
});
Wenn MetaMask auftaucht, steht "UNBEKANNTE FUNKTION" über dem Wert, der an den Client gesendet werden soll (dies geschieht auch, wenn ich versuche, Methoden aufzurufen, die tatsächlich einen Etherwert erfordern). Gibt es eine Möglichkeit, das Problem anzugehen? Es scheint, dass dies für Benutzer wahrscheinlich beunruhigend wäre, wenn tatsächlich Ether im Spiel wäre.
Damit MetaMask die Signatur Ihrer Funktion erkennt, müssen Sie sich unter
https://etherscan.io/address/0x44691B39d1a75dC4E0A0346CBB15E310e6ED1E86#writeContract registrieren
Hier zieht MetaMask Daten, um die Funktion zu bestimmen, die einem Funktions-Hash entspricht.
dh rufen Sie in Ihrem Beispiel die register
Funktion des obigen Vertrags auf und übergeben Sie Folgendes:
someFunction(uint256)
Arisalexis
Adam Dossa
register
(z. B. MEW, Mist), mit der Sie mit Smart Contracts interagieren können. etherscan.io unterstützt jetzt auch das Schreiben in Verträge (siehe obigen Link) mit MetaMask. Das Konto sollte bei der Registrierung einer Funktion keine Rolle spielen – alles, was Sie tun, ist, den Funktionsnamen mit seiner Signatur zu verknüpfen und diese Zuordnung im Smart Contract aufzuzeichnen. Sie müssten für den Anruf Benzin bezahlen, aber sonst nichts.TENNoX