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;
}
}
No puede implementar un contrato con un internal
constructor. Utilice public
en su lugar:
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);
}
Por cierto, estás usando una versión extremadamente antigua del compilador Solidity. La versión actual es 0.4.23. Hay una sintaxis de constructor mejorada en estos días:
constructor() public {
...
}
buena vibración
internal
, simplemente no podrá implementar (o crear) el contrato. El objetivo de un constructorinternal
es si desea indicar explícitamente que no desea implementar (o crear) el contrato, pero aún desea heredar de él (es decir, extenderlo a un contrato implementable).