JSPM

@polymarket/real-time-data-client

1.0.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1906
    • Score
      100M100P100Q120658F
    • License MIT

    A TypeScript client to receive real time data messages

    Package Exports

      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"}`,
                  },
              ],
          });
      };
      
      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",
              },
          ],
      });

      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