|
|
4 周之前 | |
|---|---|---|
| .. | ||
| docs | 6ab44570b2 feat: add lazer contracts and sdks (#2119) | 1 年之前 |
| examples | de0d661ce5 fix(lazer/js/sdk): fix casing (#3099) | 1 月之前 |
| src | f7277e9df3 chore(lazer-sdk-js): linting issue | 1 月之前 |
| .gitignore | 6ab44570b2 feat: add lazer contracts and sdks (#2119) | 1 年之前 |
| .prettierignore | 6ab44570b2 feat: add lazer contracts and sdks (#2119) | 1 年之前 |
| CHANGELOG.md | 6ab44570b2 feat: add lazer contracts and sdks (#2119) | 1 年之前 |
| README.md | b0d6e55e1c chore(lazer-sdk-js): fixed formatting | 1 月之前 |
| eslint.config.js | 0c030309a7 chore: move component library from tailwind to sass | 1 年之前 |
| package.json | 176683bbc5 fix: fixed a number of builds and corrected the main output of a dual published package to be commonJS | 4 周之前 |
| tsconfig.build.json | 5c5b9134ef added tshy to all package.json files | 1 月之前 |
| 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 月之前 |
See contributing.md for information on how to develop or contribute to this project!
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",
});