You can install the package using npm:
npm install @entangle-labs/udf-sdk
Or using yarn:
yarn add @entangle-labs/udf-sdk
import { UdfSdk } from '@entangle-labs/udf-sdk';
// Initialize SDK
const sdk = new UdfSdk();
// Get latest price data
async function getEthPrice() {
// Get median price
const median = await sdk.getMedian('ETH/USD');
console.log('ETH/USD Median Price:', median);
// Get all votes
const votes = await sdk.getVotes(['ETH/USD']);
console.log('All votes:', votes);
// Get update call data
const callData = await sdk.getCallData(['ETH/USD']);
console.log('Update call data:', callData);
}
constructor(baseUrl?: string)
Creates a new instance of UdfSdk.
-
baseUrl
(optional): Base URL for the UDF API. Defaults to 'https://udfsnap.ent-dx.com/'
Gets the median price for a specific feed.
-
feedKey
: The feed identifier (e.g., 'ETH/USD') - Returns: Promise resolving to the median price value
const median = await sdk.getMedian('ETH/USD');
Gets all votes for specified feeds.
-
feedKeys
: Array of feed identifiers - Returns: Promise resolving to array of decoded votes
const votes = await sdk.getVotes(['ETH/USD', 'BTC/USD']);
Gets the update call data for specified feeds.
-
feedKeys
: Array of feed identifiers - Returns: Promise resolving to update call data string
const callData = await sdk.getCallData(['ETH/USD']);
async function getMultipleFeeds() {
const sdk = new UdfSdk();
const feeds = ['ETH/USD', 'BTC/USD'];
// Get all feed data
const votes = await sdk.getVotes(feeds);
// Process votes
for (const vote of votes) {
console.log(`${vote.feedKey}: ${vote.value} (from ${vote.publisher})`);
}
}
const sdk = new UdfSdk('https://your-custom-url.com');
The SDK throws errors in the following cases:
- Network Errors
try {
await sdk.getVotes(['ETH/USD']);
} catch (error) {
if (error.message.includes('HTTP error')) {
console.error('Network error:', error);
}
}
- Invalid Data Errors
try {
const median = await sdk.getMedian('ETH/USD');
} catch (error) {
if (error.message.includes('No votes provided')) {
console.error('No data available:', error);
}
}
- Node.js 16 or higher