TypeScript SDK для получения обновлений от OpenSea Stream API через веб-сокеты. В настоящее время мы поддерживаем следующие типы событий для каждой коллекции:
Это система обмена сообщениями с наилучшими усилиями. Сообщения, которые не были получены из-за ошибок соединения, повторно отправляться не будут. Сообщения могут быть доставлены не по порядку. Этот SDK предлагается в качестве бета-версии, поскольку мы работаем с разработчиками в экосистеме, чтобы сделать эту систему более надёжной и стабильной.
Документация: https://docs.opensea.io/reference/stream-api-overview.
Пожалуйста, используйте Node.js версии 16 или выше, чтобы обеспечить работу общих криптографических зависимостей.
npm install @opensea/stream-js
.npm install --save-dev @types/phoenix
.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'
});
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
для всех тестовых сетей;OpenSea Stream API доступен в следующих сетях:
wss://stream.openseabeta.com/socket
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 )