SDK for interacting with Hearn Oracle on Sui blockchain
npm install hearn-oracle-sdkThis SDK provides a TypeScript interface to interact with the Hearn Oracle on the Sui blockchain, mimicking the Pyth SDK for batch price fetching.
First, build the SDK:
``bash`
npm install
npm run build
Then, in your frontend project, you can install it locally or copy the dist folder.
In your frontend project directory:
`bash`
npm install /path/to/hearn/move/Oracle/sdk
Replace /path/to/hearn/move/Oracle/sdk with the actual path.
Copy the dist folder from this SDK to your frontend project's node_modules/hearn-oracle-sdk/dist or a similar location, and ensure the package.json is updated accordingly.
`typescript
import { SuiClient } from '@mysten/sui/client';
import { OracleClient } from 'hearn-oracle-sdk';
const provider = new SuiClient({ url: 'https://fullnode.mainnet.sui.io:443' });
const packageId = '0x...'; // Replace with actual package ID from deployment
const oracleId = '0x...'; // Replace with actual oracle object ID
const client = new OracleClient(provider, packageId, oracleId);
// Get price for a single asset
const price = await client.getPriceByType('0x2::sui::SUI');
console.log('SUI Price:', price);
// Get prices for multiple assets
const prices = await client.getPricesByTypes(['0x2::sui::SUI', '0x...::btc::BTC']);
console.log('Prices:', prices);
`
- constructor(provider: SuiClient, packageId: string, oracleId: string)getPriceByType(assetType: string): Promise
- - Get price for one assetgetPricesByTypes(assetTypes: string[]): Promise
- - Get prices for multiple assetsupdatePrices(updateDatas: UpdateData[], clockId: string): Promise
- - Build transaction to update prices for multiple assets
`typescript`
interface UpdateData {
assetType: string;
}
Prices are returned as numbers (divided by 1e18 for wad format).
`bash`
npm run build
This compiles TypeScript to JavaScript in the dist` directory.