36 votes

TestRPC / Ganache: le tx n'a pas le nonce correct

J'ai fait des expériences avec de la truffe récemment et suivi le tutoriel suivant: http://truffleframework.com/tutorials/pet-shop

Chaque fois que j'essaie de configurer une transaction, je reçois le même message d'erreur ci-dessous

Erreur: Erreur: le tx n'a pas le bon nonce. compte a l'instant de: 14 tx a nonce de: 0

Vérifié en ligne et de lire sur beaucoup d'articles liés à cela, mais jusqu'à présent n'ont pas trouvé ce qui pourrait être à l'origine de ce problème.

  • La truffe v3.4.7
  • La solidité de la v0.4.13
  • Npm v5.3.0
  • TestRPC v4.0.1 (également se produire avec la Ganache)
  • Metamask v3.9.5

Ce que je comprends, il semble qu'il est impossible de trouver les précédentes opérations de hachage de la nouvelle opération?

43voto

Muhammad Altabba Points 1269

À l'aide de MetaMask v3.14.1 vous pouvez réinitialiser votre compte comme suit:

Réinitialisation d'un Compte Dans le menu Paramètres, MetaMask a un "Reset Le compte". Ce bouton efface le compte courant de la transaction l'histoire, qui est utilisé pour calculer le compte courant pour l'instant.

enter image description here

Les utilisateurs normaux ne devrait jamais avoir une raison pour utiliser cette fonctionnalité.

Ceci est utile pour les développeurs qui réinitialisation d'un réseau de test, mais souhaitez continuer à utiliser le même compte, forçant MetaMask à croire que cette ID de réseau est propre réseau dans un état frais.

Ref: http://metamask.helpscoutdocs.com/article/36-resetting-an-account

(Merci à Tim Wu)


Vieux la réponse: Réponse de yatskevich est correct.

Toutefois, pour les gens comment à l'aide de la Truffe 4+ avec "la truffe développer", vous devez supprimer et réinstaller MetaMask à le faire fonctionner à nouveau, chaque fois que vous exécutez la Truffe Développer!

Cette question est abordée ici: https://github.com/trufflesuite/truffle/issues/681ici: https://github.com/trufflesuite/ganache/issues/112et aussi ici: https://github.com/MetaMask/metamask-extension/issues/1999

Bref, ils sont de travailler sur elle et dans le temps, vous avez besoin de réinstaller MetaMask à chaque fois!

30voto

yatskevich Points 1257

Essayez de vous reconnecter à votre réseau TestRPC dans MetaMask:

  1. Sélectionnez Main Ethereum Network (ou tout autre que Localhost 8545)
  2. Sélectionnez à nouveau Localhost 8545

Je suis tombé sur ce problème après avoir arrêté et démarré un nouveau noeud TestRPC.

3voto

grandia Points 119

Vérifiez votre truffle.js ou truffle-config.js

si vous utilisez les HDWalletProvider comme ci-dessous, il semble que ce soit la cause de l'erreur

 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"
    }
  }
};
 

enlever le HDWalletProvider comme ci-dessous, il résout le mien

 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"
    }
  }
};
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X