К основному содержанию
скилл CX Codex

supra-push-oracle — скилл для Claude Code: чтение цен Supra на Hedera

Скилл для чтения push-оракула Supra на Hedera: getSvalue(pairId), миллисекундные метки времени и пары USDT. Пригодится, если контракт берёт цены из Supra.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a claude-code
Открыть на GitHub

Что делает supra-push-oracle

Скилл описывает push-паттерн Supra: оракул обновляет данные в контракте, а потребитель вызывает getSvalue(pairId) и получает цену, decimals и время. Адрес ISupraSValueFeed фиксирован для сети, а pair ID — это числовой идентификатор Supra, не адрес агрегатора EVM. Chain ID: testnet 296, mainnet 295.

Главная ловушка — время. На Hedera поле time часто приходит в миллисекундах, поэтому перед проверкой свежести его сравнивают с порогом 10_000_000_000 и делят на 1_000. Если этого не сделать, метка выглядит как будущее, и проверка на устаревание молча пропускает старые котировки. Вторая ловушка — актив котировки: фиды на Hedera часто номинированы в USDT, а не в USD, и подписывать их как USD нельзя.

Отдельно разобран отказ от неполных данных: нулевое время, нулевая цена, устаревшая метка и неизвестный pair ID должны приводить к revert, а не к возврату нуля. Цену нормализуют через decimals под шкалу потребителя, обычно 18. Внутри — SKILL.md с чек-листом и два справочника: references/examples.md с набросками чтения и references/hedera-feeds.md о том, где брать адреса и pair ID.

Какие задачи решает

  • прочитать цену из фида Supra на Hedera
  • перевести миллисекундную метку времени в unix-секунды
  • отсечь устаревшую или нулевую котировку до расчёта
  • подобрать pair ID под нужную пару
  • не подписать фид USDT как USD

Примеры запросов агенту

  • Добавь чтение цены Supra на Hedera в контракт потребителя
  • Проверь, что метка времени из getSvalue переведена в секунды перед проверкой свежести
  • Сделай ревью чтения оракула: нули, устаревание, decimals

Как установить supra-push-oracle

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a claude-code

2Вручную: положить файлы

~/.claude/skills/supra-push-oracle/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/supra-push-oracle/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о supra-push-oracle

Как установить supra-push-oracle в Claude?

Выполни npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a claude-code. Скилл окажется в ~/.claude/skills/supra-push-oracle/SKILL.md.

Что делает supra-push-oracle?

Описывает чтение push-оракула Supra на Hedera: вызов getSvalue(pairId), разбор decimals и времени, проверку свежести и отказ от неполных котировок.

Почему метка времени выглядит как будущее?

На Hedera поле time часто в миллисекундах. Значения больше 10_000_000_000 делят на 1_000 перед сравнением с block.timestamp.

Исходный текст

SKILL.md · Apache-2.0
---
name: supra-push-oracle
description: >
  Supra S-Value push oracle on Hedera. Use when reading getSvalue price feeds on Hedera
  (testnet 296 / mainnet 295), mapping pair IDs, converting millisecond timestamps to unix
  seconds, or quoting USDT pairs where USD is unavailable.
---

# Supra Push Oracle (Hedera)

**Push S-Value pattern:** Supra updates an on-chain feed; readers call `getSvalue(pairId)` and must reject empty, zero, or stale quotes.

```text
Supra push oracle → getSvalue(pairId) → consumer
```

Consumers may wrap the feed behind a local interface; that is optional. Do not assume a project-specific adapter name.

## Quick Reference

| Piece | Role |
| ----- | ---- |
| Push oracle | Immutable `ISupraSValueFeed` address for the network |
| Pair ID | Numeric Supra pair id (not an EVM aggregator address) |
| Read | `getSvalue(pairId)` → price, decimals, time |
| Time | Often **milliseconds** on Hedera — convert when `time > 1e10` |
| Quote asset | Hedera feeds are often **USDT**, not USD |
| Freshness | Compare unix **seconds** to a max staleness |

**Hedera chain IDs:** testnet `296`, mainnet `295`.

See [references/hedera-feeds.md](references/hedera-feeds.md) for where to source push-oracle addresses and pair IDs. See [references/examples.md](references/examples.md) for read sketches.

## Critical: Millisecond Timestamps

Supra `time` on Hedera is frequently milliseconds. Treat values `> 10_000_000_000` as ms and convert before staleness checks:

```solidity
uint256 updatedAt = pf.time > 10_000_000_000 ? pf.time / 1_000 : pf.time;
if (block.timestamp - updatedAt > maxStaleness) revert StalePrice(updatedAt, maxStaleness);
```

Comparing a millisecond timestamp to `block.timestamp` (seconds) will look “in the future” or skip staleness incorrectly.

## Critical: USDT Pairs On Hedera

Current Hedera Supra feeds often quote **USDT**, not USD. Pair keys / symbols must match the actual quote (`HBAR`/`USDT`, `BTC`/`USDT`). Do not label a USDT feed as USD.

## Completeness And Invalid Prices

Revert when:

| Condition | Why |
| --------- | --- |
| `pf.time == 0` | No successful update |
| `pf.price == 0` | Invalid price |
| Stale after converting to seconds | Older than `maxStaleness` |
| Unknown pair ID | Do not return zero |

Normalize `pf.price` with `pf.decimals` to the consumer scale (often 18).

## Checklist

When implementing or reviewing Supra reads on Hedera:

- [ ] Push-oracle address and pair IDs taken from Supra Hedera docs (not Ethereum)
- [ ] Timestamps converted to unix seconds when they look like milliseconds
- [ ] Pair symbols match the real quote asset (often USDT)
- [ ] Zero / missing updates revert
- [ ] Staleness bound is enforced in seconds
- [ ] Decimals normalized to the consumer scale

## References

- [references/examples.md](references/examples.md) — `getSvalue` and timestamp sketches
- [references/hedera-feeds.md](references/hedera-feeds.md) — where to source push-oracle addresses and pair IDs
- [Supra push oracle networks](https://docs.supra.com/oracles/data-feeds/push-oracle/networks)
- [Supra data feeds index](https://docs.supra.com/oracles/data-feeds/data-feeds-index)

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Похожие скиллы

Всё по теме «Бэкенд и API» →
migrating-oracle-to-postgres-data-access-code официальный github Переносит слой доступа к данным .NET/C# с Oracle на PostgreSQL через Npgsql. Нужен при миграции кода приложения вместе с базой данных. 10установок creating-oracle-to-postgres-master-migration-plan официальный github Скилл разбирает .NET solution, находит проекты с зависимостями Oracle и формирует план перехода на PostgreSQL. Пригодится перед миграцией нескольких проектов. 1 800установок chainlink-data-feeds-skill smartcontractkit Помогает агенту писать контракты и офчейн-код для чтения ценовых фидов Chainlink через AggregatorV3Interface и latestRoundData. CX Codex +1 364установок rds-oracle aws Разбирает подключение Amazon RDS for Oracle, сетевые ошибки и проблемы драйверов. Пригодится для EC2, EKS, Lambda и клиентских инструментов Oracle. CX Codex +1 4 600установок use-arc circlefin Подсказывает агенту, как настроить сеть Arc, задеплоить контракт и не перепутать два вида баланса USDC. Пригодится, если проект строится вокруг USDC. CX Codex +1 1 000установок push-notification-setup secondsky Скилл проводит агента по настройке пуш-уведомлений через Firebase Cloud Messaging и нативные сервисы. Пригодится, когда добавляешь уведомления в приложение или разбираешься с фоновыми сообщениями. CX Codex +1 418установок

Из того же набора13

Quality Gates Скилл настраивает автоматические проверки кода: линт и типы после каждой правки, локальный CI перед пушем, чек-лист перед деплоем. CX Codex +1 536установок Hedera Agent Kit v4 Migration Ведёт проект с [email protected] на v4: меняет пакеты, импорты и переписывает кастомные инструменты на BaseTool. CX Codex +1 484установок agent-kit-plugin Скилл помогает создавать плагины и инструменты для Hedera Agent Kit. Он пригодится при добавлении операций с токенами, аккаунтами и другими сервисами Hedera. CX Codex +1 463установок create-harness-spec Превращает идею фичи Hedera в готовый рецепт для hedera-harness: PRD, spec.yaml, валидаторы. Пригодится, когда нужно перейти от замысла к запускаемой спецификации. CX Codex +1 465установок harness-spec-anatomy Описывает, из чего состоит рецепт hedera-harness: файлы, значения по умолчанию v3, стадии прогона и правило слепой проверки. Нужен тем, кто пишет или проверяет такие рецепты. CX Codex +1 464установок x402-payments Скилл для агентов, который помогает закрыть HTTP-ресурсы оплатой в HBAR по схеме x402: 402-ответ, подпись перевода, проверка и расчёт через свой фасилитатор. CX Codex +1 462установок layerzero-messaging Скилл для сборки мостов LayerZero V2 между Hedera и EVM-сетями: OFT/OApp, настройка Endpoint V2, ULN, DVN и отправка через quoteSend. CX Codex +1 460установок pyth-price-feeds Скилл для интеграции Pyth pull-фидов в контракты на Hedera: обновление цены через Hermes, чтение с ограничением по возрасту, проверка confidence. CX Codex +1 444установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой