跳到正文
← 使用教程

Chainlink 价格为什么大了八个数量级:核对 Feed proxy、decimals 与时间

链小知 · 进阶 · 核验 · 依官方文档整理

从现有只读返回值检查数据含义、精度、更新时间和应用接受条件,不把任意 Feed 当交易报价。

开始前准备

  • 准备官方选定网络的 Feed proxy 地址,以及 description、decimals、latestRoundData 的已有读取结果。
  • 仅针对 EVM AggregatorV3Interface 读取;CCIP、VRF、MVR 和其他平台接口是不同产品。

1. 固定网络与 proxy 地址

从所选网络官方 Feed 信息确认 proxy,再核对 description。相同资产对在不同链的地址可能不同;优先通过 proxy 使用 AggregatorV3Interface,不能把某个 aggregator 的历史地址作为永久入口。

检查结果:网络、proxy 和 description 的资产/计价方向一致。

2. 按 decimals 换算 answer

读取 decimals 后以 answer / 10^decimals 显示。不能统一假定 8 位:例如原始值 123450000、精度 6 的示例应显示 123.45,这是自拟算术示例,不是真实报价。保留整数用于审阅,避免浮点误差。

检查结果:原始整数、精度和显示值能够回算。

3. 检查返回数据是哪类 Feed

latestRoundData.answer 随 Feed 可能是资产价格、储备或其他数据,不一定都是美元价格。description、类型与使用目的需一致;exchange rate feed 也不能等同二级市场可成交价格。

检查结果:数据单位和业务用途有明确依据。

4. 用 updatedAt 判断数据年龄

保存 roundId、updatedAt 和观察时间,先检查时间戳可解析,再按该 Feed 的更新行为与应用允许的数据年龄审阅。answeredInRound 已被官方标为 deprecated,不能把旧教程里的通用比较规则当所有 Feed 的必需验收条件。

检查结果:更新时间、数据年龄和接受条件分列。

5. 识别无数据、停用与应用拒绝

latestRoundData 报错或无数据应保持未知,停用 Feed 可能直接 revert;不能把失败读取填成价格零。低风险分类也不免除应用的数据质量检查和熔断责任。链外只读无需发交易,RPC 用量按服务商计费;不由此推断 CCIP/VRF 的费用条件。

检查结果:诊断能区分单位错误、过旧数据、无数据和类型不匹配。

怎样确认完成

  • 形成网络、proxy、单位、answer、更新时间的核对表。
  • 数据不合格原因和适用产品范围清楚。

常见错误与边界

  • 所有 answer 固定除以 10^8。
  • 旧 aggregator 地址当永久 proxy。
  • 将调用失败填成零价格,Feed 读取当可成交报价。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据