Wie kann ich meine Kunden dazu bringen, die benutzerdefinierten Token mit MetaMask an meine dapp zu zahlen? Als ich dies anprobierte, konnte ich keine Optionen sehen, ich könnte den benutzerdefinierten ERC20-Token auswählen, sondern nur den Ether. Bitte beraten.
Wenn Ihre Benutzer über die Token verfügen, können sie in der Metamaske "Token hinzufügen". In der Metamaske haben Sie 2 Registerkarten, "Senden" und "Token". Klicken Sie auf „Token“ und dann auf „Token hinzufügen“, Sie werden nach der Adresse des Vertrags gefragt, der den Token erstellt hat, und nach der Anzahl der Dezimalstellen. Dann können die Benutzer Token übertragen.
UPDATE: Um mit Ihrem Vertrag zu interagieren, müssen Benutzer das Token nicht zur Metamaske hinzufügen.
Sie können web3 verwenden
Definieren Sie die web3-Variable, damit Sie mit Ihrem Vertrag interagieren können
var web3 = new Web3(new Web3.providers.HttpProvider("your ethereum node"));
Für den Zugriff auf die Funktionen des Vertrages benötigen Sie die Definitionen der Funktionen (ABI)
ABI = "put here your contract ABI"
Dann können Sie eine Instanz Ihres Vertrags erstellen:
var Contract = web3.eth.contract(ABI);
var contractInstance = Contract.at('address of your contract')
Nun können Sie auf die Funktionen Ihres Vertrages zugreifen, zum Beispiel die Funktion Übertragung, um Token vom Benutzerkonto auf einen anderen Benutzer oder auf Ihren Vertrag zu übertragen:
contractInstance.transfer.("the_adress","the amount of tokens", {from:address},(function(err,result){
if(!err){
console.log(result)
}
})
Dies ist nur ein kurzer Überblick darüber, wie es geht. Ich hoffe, es hilft.
Wenn ich Sie richtig verstehe, klingt es so, als ob Sie versuchen, die Gasgebühr (eine Gebühr in der Genesis-Währung der Blockchain, die Sie zahlen müssen, um in die Blockchain zu schreiben) durch Ihren ERC20-Token ersetzen . Du kannst das nicht . Sie können Ihren ERC20-Token zusätzlich zur Gasgebühr hinzufügen, aber Sie können die Gasgebühr nicht ausschließlich durch einen beliebigen ERC20-Token ersetzen.
DavidB
Jaime
DavidB
Jaime
DavidB
Jaime
contractInstance
bereits die Adresse Ihres Vertrags-Tokens haben,the_address
in meinem Beispiel ein Parameter, der von dertransfer
Funktion der ERC20-Tokens benötigt wird, das ist die Adresse, an die die Tokens gesendet werden. Ich denke, es gibt ein wenig Verwirrung darüber, was Metamask tut. Dadurch können Sie eine Verbindung zum Netzwerk herstellen, indem Sie Ihre Transaktionen offline mit Ihrem Schlüssel signieren und eine Zeilentransaktion senden. Was ich sagen möchte, ist, dass Metamask bei der Interaktion mit Verträgen nicht weiß, worum es bei den Transaktionen geht, es sendet einfach die Transaktion an das Netzwerk, das von web3 vorbereitet wurde.Jaime
DavidB