SuperAPI AI 工具集

supra-push-oracle

数据与分析

查看项目

更新于 10-16 05:50

技能介绍

用途:在 Hedera 网络上读取 Supra 的 S-Value 推送式预言机。Supra 会先把价格更新到链上,读取方调用 getSvalue(pairId) 获取价格、精度与时间,然后消费该报价。

主要能力与关键点:

  1. 读取方式:getSvalue(pairId) 返回 price、decimals、time。pairId 是 Supra 的数字配对 ID,不是 EVM 聚合器地址。消费者可自行用本地接口包装,但不要假定某个项目特定适配器名称。
  2. 时间戳:Hedera 上的 Supra 时间常为毫秒。当 time > 10000000000 时应按毫秒处理,除以 1000 转成 Unix 秒后再做新鲜度检查。示例:uint256 updatedAt = pf.time > 10_000_000_000 ? pf.time / 1_000 : pf.time; if (block.timestamp - updatedAt > maxStaleness) revert StalePrice(updatedAt, maxStaleness); 若直接用毫秒与秒级 block.timestamp 比较,会误判为“未来”或错误跳过过期检查。
  3. 报价资产:Hedera 上的 Supra 报价常以 USDT 计价,而非 USD。配对键与符号需匹配真实报价资产,如 HBAR/USDT、BTC/USDT,不要把 USDT 报价标成 USD。
  4. 完整性与无效价格:以下情况应 revert——pf.time == 0(无成功更新)、pf.price == 0(无效价格)、转换为秒后仍超过 maxStaleness(过期)、未知 pairId(不要返回零)。此外需用 pf.decimals 把 pf.price 归一化到消费方精度(常为 18)。

链 ID:Hedera testnet 296、mainnet 295。推送预言机地址与 pair ID 应从 Supra Hedera 文档获取,而非以太坊文档。参考资料提及 references/examples.md(getSvalue 与时间戳示例)与 references/hedera-feeds.md(推送预言机地址与配对 ID 来源)。

限制:具体地址、pair ID 清单、maxStaleness 取值与部署细节暂未提供,需查阅对应参考文件或 Supra Hedera 官方文档。