Wie sende ich eine Transaktion mit Web3 an den Infura-Knoten? [Duplikat]

Ich möchte ETH über die Web3-Schnittstelle und den Infura-Knoten von einem Konto zu einem anderen senden. Ich habe es wie unten versucht und habe den Fehler 405() erhalten. Fehler: Ungültige JSON-RPC-Antwort: ""

Ich teste es im Rinkeby Testnetz. So initialisiere ich Web3 und führe die Transaktion durch.

<script>
        $(document).ready(function () {
            const Web3 = require('web3');
            const web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/<Access_Token>'));

            $(".btn-send").click(function () {
                web3.eth.sendTransaction(
                    {
                        to: '0xae8cE2D0B2015Aeb62189822C7eEae2f60B011e5',
                        from: '0x5ada788989dCa813cBE82eD8bB8d54e1b43327A7',
                        value: web3.toWei("1", "ether")
                    },
                    function (error, transactionHash) {
                        if (!error) {
                            console.log("send successfully");
                        } else {
                            console.log("Error: " + error);
                        }
                    }
                );
            });
        });
</script>
Sie müssen die Transaktion unterzeichnen

Antworten (2)

Ein 405-Fehler bedeutet, dass die zugrunde liegende JSON-RPC-Methode von Infura nicht unterstützt wird. Infura blockiert nur Methoden, die für Infura keinen Sinn machen, wie z. B. solche, die erfordern, dass Infura private Schlüssel speichert. Ruft anscheinend web3.eth.sendTransactiondie eth_sendTransactionMethode auf (die erfordert, dass der Server Schlüssel hält). Sie müssen die web3-Methode verwenden, die stattdessen aufruft eth_sendRawTransaction, damit die Transaktionssignierung lokal erfolgt.

Sie müssen Ihren persönlichen Paritäts-/Geth-Knoten verwenden, um eine Offline-Transaktion zu erstellen. und danach können Sie diese Transaktion mit infura versenden. Dokumentationslink: So senden Sie eine Transaktion mit infura web3js