Contrat dérivé impossible à déployer

Mustafa Khan

Contrat dérivé impossible à déployer


Pour la version allégée suivante de mon code.

 pragma solidity ^ 0.4 . 17 ; contract Managers { 

     struct   Manager { 
         uint  index ; 
         bool  isHead ; 
         bool  isManager ; 
     } mapping ( address =>   Manager )  managerAddresses ; address []   public  managerAddressesArr ; modifier isHead ( address sender ){ 
         require ( managerAddresses [ sender ]. isHead ); _ ; 
     } modifier isManager ( address sender ){ 
         require ( managerAddresses [ sender ]. isManager ); _ ; 
     } 

     constructor ( address []  _managerAddresses )   public { 
         for ( uint  i = 0 ; i < _managerAddresses . length ; i ++){ managerAddresses [ _managerAddresses [ i ]]   =   Manager ( i , false , true ); 
         } managerAddresses [ msg . sender ]   =   Manager ( managerAddressesArr . length , true , false ); managerAddressesArr =  _managerAddresses ; managerAddressesArr . push ( msg . sender ); 
     } 


 } contract UploadFactory   is   Managers { 


 } 

Je ne parviens pas à déployer le contrat uploadFactory à l’aide de remix. Je reçois toujours l’erreur

Ce contrat ne met pas en œuvre toutes les fonctions et ne peut donc pas être créé.

Lorsque je déploie le contrat uploadFactory.

Si vous voulez voir le code complet, vous pouvez le trouver ici mais le problème est le même.

https://ethfiddle.com/cFVgjmQJwW

Réponses


 mirg

Vous devez définir le constructeur dans UploadFactory afin de déployer, car il est défini dans la classe parente

 contract UploadFactory   is   Managers { 
     constructor ( address []  _managerAddresses )   public   Managers ( _managerAddresses )   {} 
 } 

cela fonctionnera

Mustafa Khan

Je vous remercie! Les constructeurs d’appels dérivés doivent donc être les mêmes que le parent?

mirg

Vous pouvez ajouter des paramètres et définir son propre comportement, mais vous devez toujours refléter la classe parente et appeler son constructeur pour la déployer.

 

#à, contrat, déployer, dérive, impossible

 

yahoo

Laisser un commentaire

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