Ich habe diesen Code, der funktioniert:
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)
})
Nehmen wir nun an, ich möchte nonce
mich selbst steuern ( Grund hier ), also tue ich:
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)
})
Ich bekomme einen tx-Hash als Ausgabe, keinen Fehler , aber die Transaktion kann nicht auf dem entsprechenden Etherscan gefunden werden, sie scheint nie an das Netzwerk gesendet zu werden. Versucht bei Rinkeby, Ropsten und Kovan.
Was könnte das Problem sein, nonce
mich selbst zu spezifizieren oder wie ich es mache?
Hinweis: Ich verwende infura
als "Knoten".
Anscheinend gibt es eine Nuance mit der Nonce ... mein Fehler war, dass ich die Nonce auf web3.eth.getTransactionCount() + 1 gesetzt habe, was eine Lücke zwischen der Nonce der vorherigen Transaktion und der Nonce der nächsten Transaktion hinterlassen hat ( Nonces sind 0 indiziert, Transaktionen sind indiziert von 1 , das ist die Wurzel des Fehlers). Es scheint also, dass Sie die Nonce nicht um 2 erhöhen und eine Lücke lassen dürfen. Muss sequentiell sein.
Xavier Leprêtre B9lab
Vignesh Karthikeyan
Senju