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()
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.
Ismael
deployed_contract
wurde 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.sapiensapiens
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?Ismael
sapiensapiens
Ismael
sapiensapiens