5.8.3 • Published 1 week ago
@switchboard-xyz/common
Licence
MIT
Version
5.8.3
Deps
10
Size
4.1 MB
Vulns
0
Weekly
0
@switchboard-xyz/common
Contains the OracleJob protobufs and other types and utilities shared across chains.
Npm: npmjs.com/package/@switchboard-xyz/common
Typedocs: switchboardxyz-common.netlify.app
Install
npm i --save @switchboard-xyz/common
Usage
Create an OracleJob
import { OracleJob, serializeOracleJob } from "@switchboard-xyz/common";
const oracleJob: OracleJob = serializeOracleJob({
tasks: [
{
httpTask: {
url: "https://www.binance.com/api/v3/ticker/price?symbol=BTCUSDT",
},
},
{
jsonParseTask: {
path: "$.price",
},
},
{
multiplyTask: {
/* Mainnet USDT/USD Feed */
aggregatorPubkey: "ETAaeeuQBwsh9mC2gCov9WdhJENZuffRMXY2HgjCcSL9",
},
},
],
});
Simulate an OracleJob
import { simulateOracleJobs } from "@switchboard-xyz/common";
const result = await simulateOracleJobs([oracleJob]);
console.log(result);
Feed Parameter Units
Raw v2 OracleFeed.maxJobRangePct values are fixed-point percentages scaled by 1e9: 1_000_000_000 means 1%. minJobResponses and minOracleSamples are unscaled counts.
Some SDK gateway helpers accept human-percent maxVariance values and scale them internally, while low-level Crossbar/gateway request bodies expect already-scaled integers. See Feed Parameter Units before copying validation values between APIs.