La bibliothèque n’est pas liée au contrat

BalaChandra

La bibliothèque n’est pas liée au contrat


J’essaie de faire un petit exemple de contrat de

 Error  deploying required libraries :   Invalid  bytecode format . 

Voici le code du contrat

 library CounterLib   { 
 struct   Counter   {  
     uint  i ; 


 } 

  function  incremented ( Counter  storage self )  returns ( uint )   { 
     return   ++ self . i ; 
  } 
 } contract CounterContract   { 
    using   CounterLib   for   CounterLib . Counter ; 

    CounterLib . Counter  counter ; 

    function  increment ()  returns ( uint )   { 
      return  counter . incremented (); 
    } 
 } 

willjgriff

Est la pragma solidity ^0.4.*; où * est un numéro de version, en haut de votre fichier Solidity?

BalaChandra

@willjgriff Oui.

Réponses


 willjgriff

Comment déployez-vous cela? Avec Truffle ou Remix ou autre chose?

Si je copie cela dans Remix et le déploie avec la machine virtuelle Javascript, cela semble fonctionner comme prévu, donc il n’y a rien de mal avec le code que vous avez collé ci-dessus. Notez qu’avant de déployer CounterContract il doit être lié à la bibliothèque CounterLib déployée. La liaison prend l’adresse de la bibliothèque CounterLib déployée et la copie dans le bytecode de CounterContract avant le déploiement.

Remix effectue automatiquement la liaison et Truffle vous oblige à spécifier des contrats liés dans le script de déploiement. CounterLib vous et comment CounterLib vous CounterLib à CounterContract ?

BalaChandra

J’utilise également le remix avec VM javascript, mais je reçois cette erreur.

BalaChandra

Il pourrait y avoir un problème avec mon navigateur. Si j’ouvre une fenêtre privée, cela fonctionne bien. J’ai essayé avec un autre navigateur, cela fonctionne bien.


 BalaChandra

Le problème est avec mon navigateur, je pense, j’ai essayé dans un autre navigateur, le code fonctionne comme prévu et j’ai également essayé d’utiliser une fenêtre privée, puis cela a bien fonctionné. Mais j’essaie de créer en utilisant ma fenêtre de navigateur normale. Je reçois cette erreur. Je ne connais pas la raison, mais pour l’instant en utilisant un autre navigateur.

willjgriff

Par intérêt, quel navigateur a l’erreur et quel navigateur n’en a pas?

BalaChandra

J’utilise Ubuntu, le navigateur Chrome a cette erreur. Dans Google Chrome, cela fonctionne bien. Et en chrome aussi, je reçois cette erreur, lorsque j’utilise des références de stockage dans la bibliothèque. Les normales comme les mathématiques sûres fonctionnent bien.

 

#au, #la, #pas, bibliothèque, contrat, liée, n’est

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *