SuperAPI AI 工具集

pyth-price-feeds

通用与其它

查看项目

更新于 10-16 05:50

技能介绍

用途:在 Hedera 上集成 Pyth 价格馈送。Pyth 采用拉取(pull)模式,不是推送即用的馈送;要获得新鲜价格,通常需要先取得 Hermes 更新载荷并在链上以付费方式提交,然后再读取。

主要能力与流程:Hermes → updatePriceFeeds{value: fee}(updateData) → getPriceNoOlderThan(priceId, maxAge)。关键要素包括:Pyth 合约(按网络使用 IPyth 地址)、Price ID(bytes32 馈送标识,不是聚合器地址)、更新(用 getUpdateFee 计算费用,msg.value 必须覆盖)、读取(getPriceNoOlderThan 指定最大时效)、置信区间检查(当 conf 大于 uint64(price) 时应拒绝)、以及比例换算(有符号 price 与 expo 需换算到消费方小数位,常见为 18)。Hedera 链 ID:测试网 296,主网 295。

必要用法:若链上价格比时效上限更旧,需先获取 Hermes 更新数据并提交,示例逻辑为:用 PYTH.getUpdateFee(updateData) 取费用,msg.value 不足则 revert,再 PYTH.updatePriceFeeds{value: msg.value}(updateData)。注意 Hedera 上 msg.value 以 tinybars 计,通过 JSON-RPC 附加,需附足原生代币以支付 Pyth 费用。读取后用 getPriceNoOlderThan 校验:publishTime 不为 0;price 大于 0;conf 不大于 uint64(price);并把有符号 expo 归一化(expo 与 ERC-20 decimals 不同)。

适用场景:在 Hedera 上实现或审查 Pyth 集成时,需要确保合约地址与价格 ID 取自 Pyth Hedera / Hermes 文档(而非以太坊默认值);读取使用带最大时效的 API,不用无界的不安全价格做交易;链 ID 为 295 或 296。

限制:资料未提供具体合约地址、价格 ID 数值、完整示例代码细节或收费金额,需查阅参考资料与官方文档;不得将过期的 getPriceUnsafe 结果当作有效交易价格。