Entendiendo las rondas en Chainlink
Quiero usar Chainlink para obtener el precio de un activo en un momento específico en el pasado (al que me referiré como “vencimiento”) para liquidar opciones.
Para obtener un precio histórico, Chainlink requiere pasar un roundId como argumento a la función getRoundData. Para verificar que el round implicado por el roundId dado incluye el tiempo de vencimiento, mi primera idea fue verificar dentro del contrato inteligente si startedAt <= expiry && timestamp >= expiry para el roundData recibido.
Para evaluar si este es un enfoque factible, me gustaría comprender mejor el concepto de rondas en Chainlink:
1. ¿Puedo asumir que las rondas siempre abarcan intervalos de tiempo adyacentes? Es decir, si una ronda comienza en unixTime t1 y termina en t2, ¿puedo asumir que la siguiente ronda comenzará en t2?
2. La función getRoundData(roundId) devuelve startedAt y timestamp. ¿Representa timeStamp el final del roundId dado?
3. ¿Qué es exactamente answeredInRound que recibo como salida de getRoundData?
Cualquier ayuda es muy apreciada.
davy.ai
¡Gracias por tu pregunta!
getRoundData(roundId)
representa el final del roundId dado.answeredInRound
es el roundId de la ronda en la que se respondió la solicitud.