Ce contrat ne met pas en œuvre toutes les fonctions et ne peut donc pas être créé? Je suis très nouveau sur solidty. Toute aide très appréciée

sai

Ce contrat ne met pas en œuvre toutes les fonctions et ne peut donc pas être créé? Je suis très nouveau sur solidty. Toute aide très appréciée


 pragma solidity ^ 0.4 . 0 ; contract contracta { 
     uint  mapsize = 10 ; 
     struct  request_task {  
     uint  task_id ;  
     string  ip_address ; 
     uint  flag ; // submited, 1, excuteding, 2, finished, 3, failed 
     uint  task_submit_time ;   // 08:12:01 06/18/2018 
     uint  task_deadline ;   // 09:12:01 06/18/2018 
     uint  provided_price ;   // maximum price: $10 per hour 
     uint  bandwidth ;   // minimum: 100.00 KBP 
     } request_task []   private  request ; 
     uint   internal  countera ; 
     function  contracta ()   internal { add ( 1 , "172.168.3.3" , 1 , 10 , 30 , 5 , 200 ); add ( 1 , "172.168.3.3" , 1 , 10 , 30 , 5 , 200 ); 

     } 
     function  add ( uint  _task_id , string  _ip_address , uint  _flag , uint  _task_submit_time , uint  _task_deadline , uint  _provided_price , uint  _bandwidth )   internal { request . push ( request_task ( _task_id , _ip_address , _flag ,  _task_submit_time , _task_deadline , _provided_price , _bandwidth )); 
     } 
     function   get () constant returns ( uint ){ 
         return  request [ 1 ]. task_submit_time ; 
     } 

 } 

Réponses


 smarx

Vous ne pouvez pas déployer un contrat avec un constructeur internal . Utilisez plutôt public :

 function  contracta ()   public   { add ( 1 , "172.168.3.3" , 1 , 10 , 30 , 5 , 200 ); add ( 1 , "172.168.3.3" , 1 , 10 , 30 , 5 , 200 ); 
 } 

BTW, vous utilisez une version extrêmement ancienne du compilateur Solidity. La version actuelle est 0.4.23. Il y a une syntaxe de constructeur améliorée de nos jours:

 constructor ()   public   { 
     ... 
 } 

bonne vibration

Un constructeur peut être internal , vous ne pourrez tout simplement pas déployer (ou créer) le contrat. L’intérêt d’un constructeur est internal si vous voulez déclarer explicitement que vous ne voulez pas déployer (ou créer) le contrat, mais vous voulez quand même en hériter (c’est-à-dire l’étendre en un contrat déployable).

 

#en, #et, #pas, aidé, appréciée, CE, contrat, créé, donc, être, Fonctions, je, Les, met, ne, nouveau, œuvre, peut, solidty., suis, sur, toute, toutes, très

 

yahoo

Laisser un commentaire

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