UNPKG

@chorus-one/ethereum

Version:

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

51 lines (50 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUnstakeQueue = void 0; const getUnstakeQueue = async (params) => { const { connector, vault, userAccount } = params; const queueData = await connector.graphqlRequest({ type: 'graph', op: 'exitQueue', query: ` query exitQueue($where: ExitRequest_filter) { exitRequests(where: $where) { receiver isClaimed timestamp totalAssets isClaimed isClaimable exitedAssets isV2Position positionTicket exitQueueIndex withdrawalTimestamp } } `, variables: { where: { vault: vault.toLowerCase(), receiver: userAccount.toLowerCase() } } }); 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 }; }); }; exports.getUnstakeQueue = getUnstakeQueue;