1.0.9 • Published 10 months ago
@entangle-labs/udf-sdk v1.0.9
UDF SDK Documentation
Table of Contents
Installation
You can install the package using npm:
npm install @entangle-labs/udf-sdkOr using yarn:
yarn add @entangle-labs/udf-sdkQuick Start
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);
}API Reference
Class: UdfSdk
Constructor
constructor(baseUrl?: string)Creates a new instance of UdfSdk.
baseUrl(optional): Base URL for the UDF API. Defaults to 'https://udfsnap.ent-dx.com/'
Methods
getMedian(feedKey: string): Promise
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');getVotes(feedKeys: string[]): Promise<DecodedVote[]>
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']);getCallData(feedKeys: string[]): Promise
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']);Examples
Getting Multiple Feed Data
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})`);
}
}Custom Base URL
const sdk = new UdfSdk('https://your-custom-url.com');Error Handling
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);
}
}Requirements
- Node.js 16 or higher