@chorus-one/ethereum
Version:
All-in-one toolkit for building staking dApps on Ethereum network
51 lines (50 loc) • 1.81 kB
JavaScript
;
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;