1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ProjectOpenSea-stream-js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

OpenSea Stream API — TypeScript SDK

TypeScript SDK для получения обновлений от OpenSea Stream API через веб-сокеты. В настоящее время мы поддерживаем следующие типы событий для каждой коллекции:

  • элемент добавлен в список;
  • элемент продан;
  • элемент передан;
  • обновления метаданных элемента;
  • элемент отменён;
  • получено предложение по элементу;
  • получена ставка по элементу.

Это система обмена сообщениями с наилучшими усилиями. Сообщения, которые не были получены из-за ошибок соединения, повторно отправляться не будут. Сообщения могут быть доставлены не по порядку. Этот SDK предлагается в качестве бета-версии, поскольку мы работаем с разработчиками в экосистеме, чтобы сделать эту систему более надёжной и стабильной.

Документация: https://docs.opensea.io/reference/stream-api-overview.

Установка

Пожалуйста, используйте Node.js версии 16 или выше, чтобы обеспечить работу общих криптографических зависимостей.

  1. Установите этот пакет: npm install @opensea/stream-js.
  2. Установите типы для phoenix: npm install --save-dev @types/phoenix.
  3. Только для NodeJS: установите необходимые библиотеки: npm install ws node-localstorage.

Начало работы

Аутентификация

Чтобы упростить процесс подключения, мы интегрировали OpenSea Stream API с нашей существующей системой ключей API. Ключи API, которые вы использовали для REST API, также должны работать здесь. Если у вас ещё нет ключа, вы можете создать его в настройках своей учётной записи OpenSea.

Создание клиента

Браузер
import { OpenSeaStreamClient } from '@opensea/stream-js';

const client = new OpenSeaStreamClient({
  token: 'YOUR_OPENSEA_API_KEY'
});
Node.js
import { OpenSeaStreamClient } from '@opensea/stream-js';
import { WebSocket } from 'ws';
import { LocalStorage } from 'node-localstorage';

const client = new OpenSeaStreamClient({
  token: 'YOUR_OPENSEA_API_KEY',
  connectOptions: {
    transport: WebSocket,
    sessionStorage: LocalStorage
  }
});

Вы также можете дополнительно передать:

  • сеть, если хотите получить доступ к тестовым сетям. Значение по умолчанию — Network.MAINNET для всех основных сетей. Также можно выбрать Network.TESTNET для всех тестовых сетей;
  • apiUrl, если вы хотите получить доступ к другой конечной точке OpenSea Stream API. Не требуется, если вы предоставляете сеть или используете значения по умолчанию;
  • обратный вызов onError для обработки ошибок. Поведение по умолчанию — вывод ошибки на консоль;
  • logLevel для установки уровня журнала. По умолчанию — LogLevel.INFO.

Доступные сети

OpenSea Stream API доступен в следующих сетях:

Mainnet

wss://stream.openseabeta.com/socket

Testnet

wss://testnets-stream.openseabeta.com/socket

Чтобы создать экземпляр клиента для тестовой сети, вы можете создать его со следующими аргументами:

import { OpenSeaStreamClient, Network } from '@opensea/stream-js';

const client = new OpenSeaStreamClient({
  network: Network.TESTNET,
  token: 'YOUR_OPENSEA_API_KE'
});

Для тестовых сетей ключ API не требуется, поэтому для token при сети Network.TESTNET подходит любое значение.

Ручное подключение к сокету (необязательно)

Клиент автоматически подключится к сокету, как только вы подпишетесь на первый канал. Если вы хотите подключиться к сокету вручную (до этого), вы можете это сделать:

client.connect();

После успешного подключения к нашему веб-сокету пришло время слушать конкретные события, которые вас интересуют!

Потоковая передача обновлений метаданных

Мы будем отправлять обновления метаданных только тогда, когда обнаружим, что метаданные, предоставленные в tokenURI, отличаются от того, что ранее кэшировала OpenSea.

client.onItemMetadataUpdated('collection-slug', (event) => {
  // handle event
});

Потоковое событие «элемент добавлен в список»

client.onItemListed('collection-slug', (event) => {
  // handle event
});

Потоковое событие «элемент продан»

...
``` ## Потоковая передача событий передачи элементов

```typescript
client.onItemTransferred('collection-slug', (event) => {
  // обрабатываем событие
});

Потоковая передача ставок и предложений

client.onItemReceivedBid('collection-slug', (event) => {
  // обрабатываем событие
});

client.onItemReceivedOffer('collection-slug', (event) => {
  // обрабатываем событие
});

Потоковая передача нескольких типов событий

client.onEvents(
  'collection-slug',
  [EventType.ITEM_RECEIVED_OFFER, EventType.ITEM_TRANSFERRED],
  (event) => {
    // обрабатываем событие
  }
);

Потоковая передача событий отмены заказов

client.onItemCancelled('collection-slug', (event) => {
  // обрабатываем событие
});

Подписка на события из всех коллекций

Если вы хотите прослушивать событие из всех коллекций, используйте подстановочный знак * для параметра collectionSlug.

Типы

Типы включены, чтобы упростить работу с объектами полезной нагрузки наших событий.

Отключение

От конкретного потока

Все методы подписки возвращают функцию обратного вызова, которая отписывается от потока при вызове.

const unsubscribe = client.onItemMetadataUpdated('collection-slug', noop);

unsubscribe();

Из сокета

client.disconnect();

Вклад в проект

Подробные инструкции по началу работы над этим проектом см. в руководстве по внесению вклада.

Лицензия

MIT Copyright 2022 Ozone Networks, Inc.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

SDK для получения обновлений от OpenSea через websocket. Развернуть Свернуть
TypeScript и 3 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ProjectOpenSea-stream-js.git
git@api.gitlife.ru:oschina-mirror/ProjectOpenSea-stream-js.git
oschina-mirror
ProjectOpenSea-stream-js
ProjectOpenSea-stream-js
main