Выполнение транзакции отправки никогда не заканчивается [ОБНОВЛЕНО]

Я отправляю транзакцию с web3 1.0.0 из скрипта вроде:

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)

и после получения подтверждений и квитанций программа продолжает выполняться и никогда не завершается. Может ли кто-нибудь объяснить мне, почему это происходит?

ОБНОВЛЕНО: Может ли это быть из-за того, что у меня работает собственный кошелек? или выполнение программы должно быть завершено в любом случае?

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

wallet = create_wallet()
Как deployed_contractбыл создан? Похоже на проблему с узлом, если у вас есть ожидающая задача, она не остановится и будет продолжать ждать завершения всей задачи. Некоторые библиотеки создают фоновую задачу, например, для баз данных.
Я делаю: await contract.deploy({ data: '0x' }).send({...}) .then(function(newContractInstance){ deployed_contract = newContractInstance; });и, как вы говорите, это никогда не кончается. Как я мог закончить это задание?
Вы подписаны на события? Серьезно, без изучения полного исходного кода невозможно сказать, что заставляет ваш скрипт не завершиться. Вы можете начать с пустого файла javascript и начать добавлять функциональные возможности, пока не найдете нужный.
Я не подписан на события. Я добавил обновление в описание.
Невозможно найти виновника без тестирования и изучения исходного кода. Попробуйте начать с пустого файла и начните добавлять функциональность, пока не появится ошибка.
проблема в функции create_wallet() которую я показываю в описании

Ответы (1)

Попробуйте прокомментировать код для подтверждения, возможно, узлы в сети продолжают подтверждать транзакцию, и именно поэтому она продолжает выполняться.

Другое дело, что вы ничего нигде не вернули, поэтому код не может сломаться.

Я пытался сделать это, но проблема все еще возникает
После .on('error') попробуйте добавить .then() и вернуть значение внутри него. ИЛИ Вы можете вернуть квитанцию ​​​​после ее получения.