envoyer des données et de l’éther à un autre contrat de la même manière [dupliquer]

Majd TL

envoyer des données et de l’éther à un autre contrat de la même manière [dupliquer]


Cette question a déjà une réponse ici:

J’ai besoin d’appeler une fonction d’un autre contrat (la fonction prend un paramètre et a besoin de 1 Ether pour s’exécuter) comme ceci:

  pragma solidity ^ 0.4 . 4 ; contract ContractONE   {     
        uint   public  i ; 
        function   register ( uint  _i )  payable { 
           if ( msg . value >   1  ether ){ i =  _i ; 
           }   else   { revert ();} 
         } 
        ... 
     } 

……………………………………..

 pragma solidity ^ 0.4 . 4 ; 
   import   "./ContractONE.sol" ; 
   Contract  contractTwo { address addofContract1 ; 
      uint  i ; 
      .... 
      function  changeNum ( uint  _i )  payable { i =  _i ; 
          ContractONE  c =   ContractONE ( addofContract1 ); 
          //// problem here: c . register ( _i );   //will revert, cause it does not send ether!! 
         //// 
       } 
     } 

le deuxième contrat contient déjà de l’éther.

existe-t-il une méthode pour le faire? peut-être comme c.register(_i).transfer(amount)! ou une astuce avec addofContract1.call(.....,.....)

Réponses


 Majd TL

j’ai trouvé la réponse

 c . register . value ( msg . value )( _i ); 

 

[dupliquer], #à, #autre, #de, #et, #la, contrat, des, données), envoyer, l’éther, manière, même, un

 

yahoo

Laisser un commentaire

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