web3.js-Token-Genehmigungsfunktion zeigt null / 0 in Metamask

BEARBEITEN Die Erlaubnis ist festgelegt, das Problem ist nur, dass die Metamaske keinen Token-Namen oder zulässigen Betrag erkennt.

In meinem HTML/JS

amount = parseInt(web3.toWei(amount, "ether" ));

tokeninstance.approve(mainadd,amount,function(error, transactionHash){
if (!error){
    $("#allowanceresult").html("TX hash: "+transactionHash+"<br>")
    toastr.success("Approval successfull!")
}else{
    $("#allowanceresult").html("Error: "+error+"<br>")
    toastr.error("Approval failed!");
}

Im Solidity-Interface

function approve(address guy, uint wad) public returns (bool);

Wenn ich die Genehmigungsfunktion in Remix manuell ausführe, bin ich auf Ropsten, aber wenn ich Metamask + die HTML / JS-Dapp-Funktion dort oben verwende, Benutzereingaben erhalte (richtig in wei anzeigen) und eine vordefinierte Adresse (korrektes Format) eingebe, zeigt Metamask mir dies , immer noch auf ropsten:

Geben Sie hier die Bildbeschreibung ein

Übersehe ich etwas? Es ist immer so, dass ich meine send() web3.js-Funktionen gemacht habe, ich verwende die gleiche web3.js-Datei wie immer.

Wenn Sie beide Ereignisse nebeneinander überprüfen (von Remix und Metamask), werden eindeutig beide gleichen Daten eingegeben, gleiche Adresse und gleiche Wei-Menge. :(

Hast du irgendeine Lösung bekommen?

Antworten (1)

Senden Sie beim Aufrufen einer Smart-Contract-Funktion aus Javascript das uintArgument als BigNumber . Ich schätze, du kannst das versuchen?

amount = new BigNumber(web3.toWei(amount, "ether" ));

Ja, das habe ich, die Zulagemethode funktioniert in der Benutzeroberfläche
Was ich nicht verstehe, ist die Metamaske, die undefiniertes Token/erlaubten Betrag anzeigt
Können Sie versuchen, "Benutzerdefiniertes Token hinzufügen" in der Metamaske auszuführen?
Ich habe es versucht, aber es verschwand seltsamerweise, als ich die Metamaske schloss und wieder öffnete. Ich werde es morgen früh noch einmal versuchen, es hat Sinn, dass diese Daten verwendet werden, wenn mit dem Token interagiert und Daten auf der Metamask-Benutzeroberfläche angezeigt werden!