Package Exports
- @polymarket/real-time-data-client
- @polymarket/real-time-data-client/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@polymarket/real-time-data-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Real time data client
This client provides a wrapper to connect to the real-time-data-streaming WebSocket service.
How to use it
Here is a quick example about how to connect to the service and start receiving messages (you can find more in the folder examples/):
import { RealTimeDataClient } from "../src/client";
import { Message } from "../src/model";
const onMessage = (message: Message): void => {
console.log(message.topic, message.type, message.payload);
};
const onConnect = (client: RealTimeDataClient): void => {
// Subscribe to a topic
client.subscribe({
subscriptions: [
{
topic: "comments",
type: "*", // "*"" can be used to connect to all the types of the topic
filters: `{"parentEntityID":100,"parentEntityType":"Event"}`, // empty means no filter
},
],
});
};
new RealTimeDataClient({ onMessage, onConnect }).connect();How to subscribe and unsubscribe from messages
Once the connection is stablished and you have a client: RealTimeDataClient object, you can subscribe and unsubscribe to many messages streamings using the same connection.
Subscribe
Subscribe to 'trades' messages from the topic 'activity' and to the all comments messages.
client.subscribe({
subscriptions: [
{
topic: "activity",
type: "trades",
},
],
});
client.subscribe({
subscriptions: [
{
topic: "comments",
type: "*", // "*"" can be used to connect to all the types of the topic
},
],
});Unsubscribe
Unsubscribe from the new trades messages of the topic 'activity'. If 'activity' has more messages types and I used '*' to connect to all of them, this will only unsubscribe from the type 'trades'.
client.subscribe({
subscriptions: [
{
topic: "activity",
type: "trades",
},
],
});Disconnect
The client object provides a method to disconnect from the WebSocket server:
client.disconnect();Messages hierarchy
| Topic | Type | Auth | Filters (if it is empty the messages won't be filtered) | Schema |
|---|---|---|---|---|
| activity | trades | - | - | Trade |
| comments | comment_created | - | '{"parentEntityID":number,"parentEntityType":"Event / Series"}' | Comment |
| comments | comment_removed | - | '{"parentEntityID":number,"parentEntityType":"Event / Series"}' | Comment |
| comments | reaction_created | - | '{"parentEntityID":number,"parentEntityType":"Event / Series"}' | Reaction |
| comments | reaction_removed | - | '{"parentEntityID":number,"parentEntityType":"Event / Series"}' | Reaction |
Trade
| Name | Type | Description |
|---|---|---|
| asset | string | ERC1155 token ID of conditional token being traded |
| bio | string | Bio of the user of the trade |
| conditionId | string | Id of market which is also the CTF condition ID |
| eventSlug | string | Slug of the event |
| icon | string | URL to the market icon image |
| name | string | Name of the user of the trade |
| outcome | string | Human readable outcome of the market |
| outcomeIndex | integer | Index of the outcome |
| price | float | Price of the trade |
| profileImage | string | URL to the user profile image |
| profileImageOptimized | string | - |
| proxyWallet | string | Address of the user proxy wallet |
| pseudonym | string | Pseudonym of the user |
| side | string | Side of the trade (BUY/SELL) |
| size | integer | Size of the trade |
| slug | string | Slug of the market |
| timestamp | integer | Timestamp of the trade |
| title | string | Title of the event |
| transactionHash | string | Hash of the transaction |
Comment
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier of comment |
| body | string | Content of the comment |
| parentEntityType | string | Type of the parent entity (Event or Series) |
| parentEntityID | number | ID of the parent entity |
| parentCommentID | string | ID of the parent comment |
| userAddress | string | Address of the user |
| replyAddress | string | Address of the reply user |
| createdAt | string | Creation timestamp |
| updatedAt | string | Last update timestamp |
Reaction
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier of reaction |
| commentID | number | ID of the comment |
| reactionType | string | Type of the reaction |
| icon | string | Icon representing the reaction |
| userAddress | string | Address of the user |
| createdAt | string | Creation timestamp |