benduran 31c364cf41 feat: performed a minor bump all packages, since all were changed in the big dual package update 2 minggu lalu
..
docs ab0cf6f7d8 chore: updated gitignore to excluse the built dist/ folder 3 minggu lalu
examples de0d661ce5 fix(lazer/js/sdk): fix casing (#3099) 1 bulan lalu
src ba12440205 chore(lazer) Add funding rate properties 1 bulan lalu
.gitignore 6ab44570b2 feat: add lazer contracts and sdks (#2119) 1 tahun lalu
.prettierignore 6efbe89542 chore: updated prettier ignores to prevent bikeshedding 2 minggu lalu
CHANGELOG.md 6ab44570b2 feat: add lazer contracts and sdks (#2119) 1 tahun lalu
README.md b0d6e55e1c chore(lazer-sdk-js): fixed formatting 1 bulan lalu
eslint.config.js 0c030309a7 chore: move component library from tailwind to sass 1 tahun lalu
package.json 31c364cf41 feat: performed a minor bump all packages, since all were changed in the big dual package update 2 minggu lalu
tsconfig.build.json 99a6a2468b fix: tests for all 2 minggu lalu
tsconfig.json 61893978d1 fix(lazer-sdk-js): updated the websocket to be truly isomorphic and also add Buffer support when running in the browser (plus better runtime env detection) 1 bulan lalu

README.md

pyth-lazer-sdk - Readme

Contributing & Development

See contributing.md for information on how to develop or contribute to this project!

How to use

import { PythLazerClient } from "@pythnetwork/pyth-lazer-sdk";

const c = await PythLazerClient.create({
  token: "YOUR-AUTH-TOKEN-HERE",
  logger: console, // Optionally log operations (to the console in this case.)
  webSocketPoolConfig: {
    numConnections: 4, // Optionally specify number of parallel redundant connections to reduce the chance of dropped messages. The connections will round-robin across the provided URLs. Default is 4.
    onError: (error) => {
      console.error("⛔️ WebSocket error:", error.message);
    },
    // Optional configuration for resilient WebSocket connections
    rwsConfig: {
      heartbeatTimeoutDurationMs: 5000, // Optional heartbeat timeout duration in milliseconds
      maxRetryDelayMs: 1000, // Optional maximum retry delay in milliseconds
      logAfterRetryCount: 10, // Optional log after how many retries
    },
  },
});

c.addMessageListener((message) => {
  console.info("received the following from the Lazer stream:", message);
});

// Monitor for all connections in the pool being down simultaneously (e.g. if the internet goes down)
// The connections may still try to reconnect in the background. To shut down the client completely, call shutdown().
c.addAllConnectionsDownListener(() => {
  console.error("All connections are down!");
});

// Create and remove one or more subscriptions on the fly
c.subscribe({
  type: "subscribe",
  subscriptionId: 1,
  priceFeedIds: [1, 2],
  properties: ["price"],
  formats: ["solana"],
  deliveryFormat: "binary",
  channel: "fixed_rate@200ms",
  parsed: false,
  jsonBinaryEncoding: "base64",
});
c.subscribe({
  type: "subscribe",
  subscriptionId: 2,
  priceFeedIds: [1, 2, 3, 4, 5],
  properties: ["price", "exponent", "publisherCount", "confidence"],
  formats: ["evm"],
  deliveryFormat: "json",
  channel: "fixed_rate@200ms",
  parsed: true,
  jsonBinaryEncoding: "hex",
});