Verwenden von sendTransaction in Web3.js

Ich versuche, eine Funktion in meinem Dapps-Frontend zu erstellen, die Ether vom Benutzer anfordert. Ich weiß, dass ich web3.eth.sendTransaction() verwenden muss, bin mir aber nicht sicher, wie ich diese Funktion am Frontend korrekt implementieren und aufrufen soll mein Dapp, danke!

aktueller Code ist:

   $("#button").click(function() {
    Raffle.main(function (err, result) {
      web3.eth.sendTransaction({from:0x627306090abaB3A6e1400e9345bC60c78a8BEf57 ,to:0x086912faa7f6598d28d80c448c8d1e9dae5a4dee, value:web3.toWei(1, "ether")});
      console.log(result);
      });
Bitte poste deinen Vertragscode.
@lunr, um die Funktion "Senden" aufzurufen, rufe ich sie nicht einfach bei einem Ereignis im Frontend auf?
Oh, jetzt habe ich es. Es gibt Beispiele in der Dokumentation: web3js.readthedocs.io/en/1.0/web3-eth.html#sendtransaction (dies gilt für die Version web3.js 1.0)
@lunr ja, das ist mir schon bewusst, ich habe Probleme, es einzurichten und meinen Vertrag einzufordern
Bitte posten Sie, was Sie jetzt haben, damit jemand helfen kann. Ihre Frage ist jetzt sehr weit gefasst.

Antworten (2)

Ich habe festgestellt, dass dies funktioniert, um eine Funktion aufzurufen und Ether damit zu senden, toist meine Vertragsadresse, valueist der Betrag in wei, den ich damit senden möchte, und dataist die Adresse meiner Funktion, die ich beim Senden der Daten aufrufen möchte

  function mainEnter() {
        web3.eth.getAccounts(function(error, result) {
        web3.eth.sendTransaction(
            {from:web3.eth.accounts[0],
            to:"0x943",
            value:  "1000000000000000000", 
            data: "0xdf"
                }, function(err, transactionHash) {
          if (!err)
            console.log(transactionHash + " success"); 
        });
    });

    }

Adressen sollten Zeichenfolgen sein:

web3.eth.sendTransaction({
    from: "0x627306090abaB3A6e1400e9345bC60c78a8BEf57",
    to: "0x086912faa7f6598d28d80c448c8d1e9dae5a4dee", 
    value: web3.toWei(1, "ether"), 
}, function(err, transactionHash) {
    if (err) { 
        console.log(err); 
    } else {
        console.log(transactionHash);
    }
});
Auch im String-Format wird die Funktion immer noch nicht aufgerufen
Woher weißt du, dass es nicht heißt?
Wenn ich kann, geht die Funktion, die die sendTransactionFunktion im Wert der Metamaske enthält, nicht auf 1 ETH
Bitte überprüfen Sie die Callback-Werte.
web3.utils.toWei(string, string) web3js.readthedocs.io/en/v1.3.4/…