UNPKG

@drift-labs/sdk

Version:
33 lines (32 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isUserBankrupt = void 0; const numericConstants_1 = require("../constants/numericConstants"); const position_1 = require("./position"); const types_1 = require("../types"); function isUserBankrupt(user) { const userAccount = user.getUserAccount(); let hasLiability = false; for (const position of userAccount.spotPositions) { if (position.scaledBalance.gt(numericConstants_1.ZERO)) { if ((0, types_1.isVariant)(position.balanceType, 'deposit')) { return false; } if ((0, types_1.isVariant)(position.balanceType, 'borrow')) { hasLiability = true; } } } for (const position of userAccount.perpPositions) { if (!position.baseAssetAmount.eq(numericConstants_1.ZERO) || position.quoteAssetAmount.gt(numericConstants_1.ZERO) || (0, position_1.hasOpenOrders)(position)) { return false; } if (position.quoteAssetAmount.lt(numericConstants_1.ZERO)) { hasLiability = true; } } return hasLiability; } exports.isUserBankrupt = isUserBankrupt;