Tengo este código, que funciona:
MyToken.airdrop(wallets,amounts,{
gas: 1267051,
gasPrice: 2000000000,
},function(err,tx){
console.log('err is %s',err)
console.log('tx is %s',tx)
callback(err,tx)
})
Ahora digamos que quiero controlarme a nonce
mí mismo ( razón aquí ), así que lo hago:
MyToken.airdrop(wallets,amounts,{
gas: 1267051,
gasPrice: 2000000000,
nonce: 432 // = web3.eth.getTransactionCount() + 1
},function(err,tx){
console.log('err is %s',err)
console.log('tx is %s',tx)
callback(err,tx)
})
Obtengo un hash tx como salida, no un error , pero la transacción no se puede encontrar en el etherscan apropiado, parece que nunca se envía a la red. Lo probé con Rinkeby, Ropsten y Kovan.
¿Cuál podría ser el problema de especificarme a nonce
mí mismo o la forma en que lo estoy haciendo?
Nota: estoy usando infura
como el "nodo".
Aparentemente hay un matiz con el nonce... mi error fue que estaba configurando el nonce en web3.eth.getTransactionCount() + 1, lo que dejó una brecha entre el nonce de la transacción anterior y el nonce de la siguiente transacción ( los nonces están indexados en 0, las transacciones están indexadas de 1 , esa es la raíz del error). Parece que no se le permite incrementar el nonce en 2 y dejar un espacio. Debe ser secuencial.
Xavier Leprêtre B9lab
Vignesh Karthikeyan
senju