# supra-push-oracle

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

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 448 установок · ★ 28
- Автор: hedera-dev
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/hedera-dev/hedera-skills/tree/HEAD/plugins/oracles/skills/supra-push-oracle/SKILL.md
- Обновлён: 2026-09-03
- HTML: https://affpapa.org/nevibecode/skills/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.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
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/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/supra-push-oracle/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/supra-push-oracle/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install hedera-dev/hedera-skills supra-push-oracle
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/supra-push-oracle/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/hedera-dev/hedera-skills --path plugins/oracles/skills/supra-push-oracle
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/supra-push-oracle/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add hedera-dev/hedera-skills --skill supra-push-oracle -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/hedera-dev/hedera-skills/tree/HEAD/plugins/oracles/skills/supra-push-oracle/SKILL.md

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

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

## Похожие
- [migrating-oracle-to-postgres-data-access-code](https://affpapa.org/nevibecode/skills/migrating-oracle-to-postgres-data-access-code.md) — скилл · 10 установок
- [creating-oracle-to-postgres-master-migration-plan](https://affpapa.org/nevibecode/skills/creating-oracle-to-postgres-master-migration-plan.md) — скилл · 1800 установок
- [chainlink-data-feeds-skill](https://affpapa.org/nevibecode/skills/chainlink-data-feeds-skill.md) — скилл · 364 установки
- [rds-oracle](https://affpapa.org/nevibecode/skills/rds-oracle.md) — скилл · 4600 установок
- [use-arc](https://affpapa.org/nevibecode/skills/use-arc.md) — скилл · 1000 установок
- [push-notification-setup](https://affpapa.org/nevibecode/skills/secondsky-push-notification-setup.md) — скилл · 418 установок

Из того же набора: [hedera-dev/hedera-skills](https://affpapa.org/nevibecode/by/hedera-dev/hedera-skills.md) — 13 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
