UNPKG

hyperliquid-sdk

Version:

<<< Typescript SDK for the Hyperliquid API >>>

65 lines (57 loc) 1.79 kB
import { beforeAll, describe } from '@jest/globals'; import { Hyperliquid } from '../index'; import { ethers, Wallet } from 'ethers'; let sdk: Hyperliquid; let publicKey: string = ''; // Add mocks describe('Hyperliquid Subscriptions API tests', () => { beforeAll(async () => { const privateKey = process.env.PRIVATE_KEY!; const wallet = new Wallet(privateKey); publicKey = await wallet.getAddress(); sdk = new Hyperliquid(wallet); await sdk.connect(); }); test('subscribed to spots stream', () => { return new Promise<void>((res) => { return sdk.subscriptions.subscribeToWebData2(publicKey, async (data) => { expect( data.spotAssetCtxs.find((item) => item.coin === 'HYPE-SPOT'), ).toEqual({ circulatingSupply: expect.any(Number), coin: expect.any(String), dayBaseVlm: expect.any(Number), dayNtlVlm: expect.any(Number), markPx: expect.any(Number), midPx: expect.any(Number), prevDayPx: expect.any(Number), totalSupply: expect.any(Number), }); res(); }); }); }); test('subscribed to candle stream', () => { return new Promise<void>((res) => { return sdk.subscriptions.subscribeToCandle( 'BTC-PERP', '15m', async (data) => { expect(data).toEqual({ T: expect.any(Number), c: expect.any(String), h: expect.any(String), i: expect.any(String), l: expect.any(String), n: expect.any(Number), o: expect.any(String), s: expect.any(String), t: expect.any(Number), v: expect.any(String), }); res(); }, ); }); }); });