Ausführung der Sendetransaktion endet nie [AKTUALISIERT]

Ich sende eine Transaktion mit web3 1.0.0 von einem Skript wie:

async function sending(deployed_contract) {
    await deployed_contract.methods.mymethod(1).send({from: account})
                    .on('transactionHash', function(hash){
                        console.log("hash",hash)
                    })
                    .on('receipt', function(receipt){
                        console.log("receipt",receipt)
                    })
                    .on('confirmation', function(confirmationNumber, receipt){
                        console.log("confirmationNumber",confirmationNumber)
                    })
                    .on('error', console.error);
}

sending(deployed_contract)

und nach Erhalt der Bestätigungen und der Quittung fährt das Programm mit der Ausführung fort und endet nie. Kann mir jemand erklären warum das passiert?

AKTUALISIERT: Könnte es daran liegen, dass ich meine eigene Brieftasche habe? oder soll die Programmausführung trotzdem beendet werden?

var create_wallet = function (){
    privateKey = 'xxx';
    return new ethers.Wallet(privateKey, web3.currentProvider); 
}

wallet = create_wallet()
Wie deployed_contractwurde erstellt? Es scheint ein Knotenproblem zu sein, wenn Sie eine ausstehende Aufgabe haben, wird sie nicht angehalten und wartet weiter, bis alle Aufgaben abgeschlossen sind. Einige Bibliotheken erstellen beispielsweise für Datenbanken eine Hintergrundaufgabe.
Ich mache es: await contract.deploy({ data: '0x' }).send({...}) .then(function(newContractInstance){ deployed_contract = newContractInstance; });und wie du sagst, es endet nie. Wie könnte ich diese Aufgabe beenden?
Abonnieren Sie Veranstaltungen? Im Ernst, ohne den vollständigen Quellcode zu untersuchen, ist es unmöglich zu sagen, was dazu führt, dass Ihr Skript nicht beendet wird. Sie können mit einer leeren Javascript-Datei beginnen und die Funktionalität wieder hinzufügen, bis Sie den Verantwortlichen gefunden haben.
Ich habe keine Veranstaltungen abonniert. Ich habe eine Aktualisierung in der Beschreibung hinzugefügt.
Es ist nicht möglich, den Schuldigen zu finden, ohne den Quellcode zu testen und zu untersuchen. Versuchen Sie, mit einer leeren Datei zu beginnen, und fügen Sie Funktionen hinzu, bis der Fehler auftritt.
Das Problem liegt in der Funktion create_wallet(), die ich in der Beschreibung zeige

Antworten (1)

Versuchen Sie, den Code für Bestätigungen zu kommentieren, vielleicht bestätigen Knoten im Netzwerk die Transaktion weiterhin und das ist der Grund, warum sie weiterhin ausgeführt wird.

Eine andere Sache ist, dass Sie nirgendwo etwas zurückgegeben haben, sodass der Code nicht beschädigt werden kann.

Ich habe es versucht, aber das Problem besteht immer noch
Versuchen Sie nach .on('error'), .then() hinzuzufügen und den darin enthaltenen Wert zurückzugeben. ODER Sie können die Quittung zurücksenden, nachdem Sie eine erhalten haben.