March 2

Гайд по Red Stone

Использование оракулов RedStone для ваших блокчейн-приложений

RedStone - децентрализованная сеть оракулов, которая предоставляет внешние данные и вычисления для блокчейнов и dApps. Разработчики могут использовать оракулы RedStone для создания безопасных и надежных приложений.

В этом руководстве вы узнаете, как интегрировать оракулы RedStone.

Предварительные условия

  • Понимание разработки смарт-контрактов (Solidity, Rust и т.д.)
  • Базовые знания JSON RPC API
  • Установленный Node.js для запуска примера кода
  • Настроенный API-клиент RedStone

1. Установка JS-клиента RedStone:

Сначала установите JS-клиент RedStone через npm:

npm install @redstone-finance/api-client

Затем импортируйте и инициализируйте клиента:

JavaScript

const { ApiClient } = require('@redstone-finance/api-client');
const client = new ApiClient({
  // mainnet or testnet url 
});

content_copy

2. Поиск существующего фида:

RedStone имеет существующие фиды цен на активы, такие как ETH/USD. Найдите нужный:

JavaScript

const feed = await client.getFeed({
  network: 'ethereum',
  pair: 'ETH/USD' 
});
console.log(feed.latestValue) // Отображает последнюю цену ETH

content_copy

3. Создание пользовательского фида:

Определите пользовательский фид для получения любых необходимых данных:

JavaScript

const feed = await client.createFeed({
  network: 'avalanche', 
  key: 'custom-data',
  source: {
    // custom source    
  },
  
})

content_copy

4. Подписка на обновления фида:

Подпишитесь на получение данных фида в вашем приложении:

JavaScript

const sub = feed.subscribe(data => {
  // Новые данные доступны
})

// Отписаться позже
sub.unsubscribe()

content_copy

5. Интеграция фидов в смарт-контракты:

Используйте метод getFeedData для использования фидов в смарт-контрактах:

JavaScript

function myFunc() external {
uint256 data = RedStoneConsumer.getFeedData(
    0x123..., // адрес фида
    "key"
  );
  
}

content_copy

Вот и все! RedStone упрощает процесс использования децентрализованных данных в ваших dApps. Дополнительную информацию можно получить в документации. Если у вас есть вопросы, обращайтесь!