2017-07-19 1 views
1

J'utilise testrpc et truffle pour tester mon contrat intelligent avant de le déployer sur le vrai réseau.VM Exception en solidité

Dans mon contrat, chaque nœud doit inscrire dans le contrat en appelant le registre de fonction, après qu'il peut envoyer ou recevoir des messages à/de contrat (le blockchain)

Le problème est, lorsqu'une adresse (Disons que compte 1 des comptes testrpc) appeler les fonctions (envoyer ou recevoir) la transaction ne se produit pas et ce message apparaît

VM Exception while processing transaction: invalid JUMP at 

Mais quand j'utilise un autre compte non enregistré pour appeler cette fonction, cela fonctionne.

Bien qu'aucun message ont été envoyés ou reçus, mais sans exception ..

Toute idée comment je peux résoudre ce problème.

Merci

+0

Cela peut être trop tard pour demander, mais avez-vous essayé d'exécuter vos contrats dans 'remix ide'. Lien: www.remix.ethereum.org. –

Répondre

0

À moins que votre utilisant une ancienne version de solc pour compiler votre solidité la chance de ce qui est un problème d'optimisation est presque. Maintenant, qu'est-ce que cela signifie alors, cela peut arriver quand par exemple vous exécutez un modificateur et cela ne fonctionne pas. ou si vous essayez d'appeler une fonction, vous n'êtes pas autorisé à le faire et il lance. Par exemple, il se passe beaucoup après la fin d'un ICO et vous essayez d'utiliser une fonction qui ne peut plus être utilisée en raison d'une contrainte de date Invalid Jump

Je ne vois pas votre code mais je pense que vous pourriez avez inversé votre condition si dans votre modificateur et maintenant il retourne vrai si l'utilisateur n'est pas enregistré.