Envío una transacción con web3 1.0.0 desde un script como:
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)
y luego de recibir las confirmaciones y el recibo, el programa continúa ejecutándose y nunca termina. ¿Alguien podría explicarme por qué sucede?
ACTUALIZADO: ¿Podría ser porque tengo mi propia billetera funcionando? ¿O debería finalizar la ejecución del programa de todos modos?
var create_wallet = function (){
privateKey = 'xxx';
return new ethers.Wallet(privateKey, web3.currentProvider);
}
wallet = create_wallet()
Intente comentar el código para las confirmaciones, tal vez los nodos en la red continúan confirmando la transacción y esa es la razón por la que continúa ejecutándose.
Otra cosa es que no ha devuelto nada en ninguna parte, por lo que no hay forma de que el código se rompa.
ismael
deployed_contract
se creó? Parece un problema de nodo, si tiene una tarea pendiente, no se detendrá y continuará esperando que finalicen todas las tareas. Algunas bibliotecas crearán una tarea en segundo plano para bases de datos de ejemplo.sapiensapiens
await contract.deploy({ data: '0x' }).send({...}) .then(function(newContractInstance){ deployed_contract = newContractInstance; });
y, como dices, nunca termina. ¿Cómo podría terminar esta tarea?ismael
sapiensapiens
ismael
sapiensapiens