Как проверить возраст котировки Chainlink в момент расчёта
На панели видна свежая цена, хотя в прошлом блоке контракт отклонил расчёт. Текущий раунд не показывает, какую отметку времени контракт прочитал при выполнении транзакции.
Восстановите время расчёта
Прочитайте тот же прокси фида в исследуемом состоянии и сохраните ответ latestRoundData. Сравните updatedAt с отметкой времени блока расчёта. В примере приложение разрешает возраст до 90 секунд: котировка возрастом 20 секунд проходит, а 1120 секунд — нет. Это порог приложения, а не общее свойство фидов.
const blockTime = 1_800_000_120;
for (const updatedAt of [1_800_000_100, 1_799_999_000]) {
const age = blockTime - updatedAt;
console.log(age, updatedAt > 0 && age >= 0 && age <= 90);
}
Проверьте порядок транзакций внутри блока
Исторический вызов на конец блока может учесть обновление цены, которое прошло уже после отклонённого расчёта. Если порядок существенен, изучите трассу транзакции или воспроизведите предшествующее состояние. Сохраните прокси, ID раунда, хеш блока и применённый порог. Время получения вебхука вашим сервером не заменяет блоковое время операции.