I have been experimenting with truffle recently and followed the following tutorial: http://truffleframework.com/tutorials/pet-shop
Whenever I try to setup a transaction I keep getting the same error below
Error: Error: the tx doesn't have the correct nonce. account has nonce of: 14 tx has nonce of: 0
Checked online and read up on a lot of articles related to this but so far haven't found what might be causing this issue.
From what I understand it seems it is unable to find the previous transactions to hash the new transaction?
Using MetaMask v3.14.1
you can reset your account as follow:
Resetting an Account In the Settings menu, MetaMask has a "Reset Account" button. This button wipes the current account's transaction history, which is used to calculate the current account nonce.
Normal users should never have a reason to use this feature.
This is useful for developers who reset a test network but want to continue using the same account, forcing MetaMask to believe this network ID is a clean network in a fresh state.
Ref: http://metamask.helpscoutdocs.com/article/36-resetting-an-account
(Thanks to Tim Wu)
Old response: Answer of yatskevich is correct.
However, for people how are using Truffle 4+ with "truffle develop", you need to remove and reinstall MetaMask to get it work again, every time you run Truffle Develop!
This issue is addressed here: https://github.com/trufflesuite/truffle/issues/681, here: https://github.com/trufflesuite/ganache/issues/112, and also here: https://github.com/MetaMask/metamask-extension/issues/1999
In short they are working on it and in the mean time you need to reinstall MetaMask every time!
Try to reconnect to your TestRPC network in MetaMask:
Main Ethereum Network
(or any other than Localhost 8545)Localhost 8545
againI've stumbled upon this issue after stopping and starting a new TestRPC node.
Check your truffle.js
or truffle-config.js
if you are using the HDWalletProvider
like below, it seems that this is what causing the error
var HDWalletProvider = require("truffle-hdwallet-provider");
var mnemonic = "your mnemonic";
module.exports = {
networks: {
development: {
provider: function() {
return new HDWalletProvider(mnemonic, "http://127.0.0.1:8545/", 0, 50);
},
network_id: '*',
gas: 9999999
}
},
compilers: {
solc: {
version: "^0.4.25"
}
}
};
remove the HDWalletProvider like below, it solves mine
module.exports = {
networks: {
development: {
host: "127.0.0.1", // Localhost
port: 8545, // Standard Ganache UI port
network_id: "*",
gas: 4600000
}
},
compilers: {
solc: {
version: "0.5.2"
}
}
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With