import {randomUUID} from 'crypto'; import type {TokenName} from '@bitemap/core'; import {Bitmap} from '../library/index.js'; (async () => { const bitmap = new Bitmap({ host: 'localhost', port: 4000, tokenFileName: 'token.local.json', // host: '89.208.243.234', // port: 80, // tokenFileName: 'token.dev.json', }); const cids = [randomUUID(), randomUUID(), randomUUID(), randomUUID()]; const bitmapSource = await bitmap.createSource({ name: 'my-source', tags: { foo: 'bar', }, exchange: 'okx', primaryToken: 'USDT' as TokenName, subscribedTokens: ['BTC', 'ETH', 'DOGE'] as any as TokenName[], }); const bitmapSource1 = await bitmap.createSource({ name: 'my-source-1', tags: { foo: 'bar', }, exchange: 'okx', primaryToken: 'BTC' as TokenName, subscribedTokens: ['ETH'] as any as TokenName[], }); setInterval( () => { try { const source = bitmapSource; source.writeBalance({ tokenBalances: [ { available: 100000, frozen: 100000, token: 'USDT' as TokenName, }, { available: 100000 / 60000, frozen: 100000 / 60000, token: 'BTC' as TokenName, }, ], timestamp: Date.now(), }); bitmapSource1.writeBalance({ tokenBalances: [ { available: 10000 / 60, frozen: 10000 / 60, token: 'BTC' as TokenName, }, { available: 10000, frozen: 10000, token: 'ETH' as TokenName, }, ], timestamp: Date.now(), }); } catch (error) { console.error('## error', error); } }, randomFloat(1000, 1000), ); })().catch(console.error); function randomFloat(min: number, max: number): number { return Math.random() * (max - min) + min; } function randomInArray(array: T[]): T { return array[Math.floor(Math.random() * array.length)]; }