¿Cómo puedo enviar eth en un tiempo específico?
En caso de que la venta masiva de ICO comience a las 9:00:00 UTC, ¿cómo puedo hacer txid a las 9:00:00 exactamente cuando envío eth?
Puede utilizar una consulta doble de Oraclize con un retraso calculado.
Esto funciona de la siguiente manera:
pragma solidity ^0.4.XXX;
import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";
contract ExampleContract is usingOraclize {
uint public time;
uint public delay;
uint public desired_time; // 9:00 of desired day/month and year on UNIX time format
event LogConstructorInitiated(string nextStep);
event LogTimeUpdated(string time);
event LogNewOraclizeQuery(string description);
function ExampleContract() payable {
LogConstructorInitiated("Constructor was initiated.");
delay = 0;
updateTime();
}
function __callback(bytes32 myid, string result) {
if (msg.sender != oraclize_cbAddress()) revert();
time = parseInt(result,0);
LogTimeUpdated(result);
if(time < desiredtime)
delay= desiredtime - time;
updateTime();
else if(time == desiredtime || time > desiredtime){
//do what you want to do at 9:00
}
}
function updateTime() payable {
if (oraclize_getTime("URL") > this.balance) {
LogNewOraclizeQuery("Oraclize query was NOT sent, please add some
ETH to cover for the query fee");
} else {
LogNewOraclizeQuery("Oraclize query was sent, standing by for the answer..");
oraclize_query(delay, "URL", "xml or json(parsing of the xml or json").parse.parse....;
}
}
}
Aquí tiene información sobre Oraclize y cómo usarlo : https://docs.oraclize.it/#ethereum-quick-start-the-query-id
Aquí también tiene un sitio donde puede hacer una consulta de Oraclize para la hora actual en formato UNIX : https://timezonedb.com/api
Hice el código rápido, tal vez se necesita una revisión rápida, pero con esto puedes tener una buena idea de lo que puedes/tienes que hacer.
¡Espero eso ayude!
Creo que su mejor apuesta en este momento es Ethereum Alarm Clock
Cronos