import { Address } from 'viem'; import { fetchGraphData } from './fetch-graph'; import { ONETIME_LOCK_QUERY_BY_USER, ONETIME_LOCK_QUERY_BY_TOKEN, OnetimeLocksEntity, transform, } from './query/onetime-lock'; import { PrexApiService } from '../api'; export async function queryLinkTransferHistory( apiService: PrexApiService, _query: { user?: Address; token?: Address; }, offset: number, limit: number ) { if (_query.user) { const body = await fetchGraphData( apiService, 'onetimeLocks', ONETIME_LOCK_QUERY_BY_USER, { offset, limit, address: _query.user.toLowerCase(), } ); const history = body as OnetimeLocksEntity; return transform(history); } else if (_query.token) { const body = await fetchGraphData( apiService, 'onetimeLocks', ONETIME_LOCK_QUERY_BY_TOKEN, { offset, limit, token: _query.token.toLowerCase(), } ); const history = body as OnetimeLocksEntity; return transform(history); } else { throw new Error('Invalid query'); } }