UNPKG

@chorus-one/ethereum

Version:

All-in-one toolkit for building staking dApps on Ethereum network

47 lines (46 loc) 1.71 kB
export const getUnstakeQueue = async (params) => { const { connector, vault, userAccount, isClaimed } = params; const queueData = await connector.graphqlRequest({ type: 'graph', op: 'exitQueue', query: ` query exitQueue($where: ExitRequest_filter) { exitRequests(where: $where) { receiver isClaimed timestamp totalAssets isClaimable exitedAssets isV2Position positionTicket exitQueueIndex withdrawalTimestamp } } `, variables: { where: { vault: vault.toLowerCase(), receiver: userAccount.toLowerCase(), ...(isClaimed !== undefined && { isClaimed }) } } }); if (!queueData.data.exitRequests) { throw new Error('Queue data is missing the exitRequests field'); } const data = queueData.data.exitRequests; return data.map((queueItem) => { return { positionTicket: BigInt(queueItem.positionTicket), exitQueueIndex: queueItem.exitQueueIndex ? BigInt(queueItem.exitQueueIndex) : undefined, isWithdrawable: queueItem.isClaimable, wasWithdrawn: queueItem.isClaimed, timestamp: Number(queueItem.timestamp) * 1000, totalAssets: BigInt(queueItem.totalAssets), exitedAssets: BigInt(queueItem.exitedAssets || 0), withdrawalTimestamp: queueItem.withdrawalTimestamp !== null ? queueItem.withdrawalTimestamp * 1000 : undefined }; }); };