> For the complete documentation index, see [llms.txt](https://docs.vela.exchange/vela-knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vela.exchange/vela-knowledge-base/developers/contract-functions/liquidate-vault.md).

# Liquidate Vault

This contract is responsible for managing the liquidation of positions in a trading context. It includes several functions and events for registering and executing liquidations, as well as validating

### Initialize

This function is used to initialize the contract and set up the necessary interfaces.

```solidity
liquidateVault.initialize();
```

### Register Liquidate Position

This function allows an address to register a position for liquidation.

```solidity
liquidateVault.registerLiquidatePosition(
    uint256 _posId
);
```

### Liquidate Position

This function allows an address to liquidate a position if it meets certain conditions.

```solidity
liquidateVault.liquidatePosition(
    uint256 _posId
);
```

### Validate Liquidation With Posid

This function is used to check if a position is eligible for liquidation.

**Example Input:**

```solidity
liquidateVault.validateLiquidationWithPosid(
    uint256 _posId
);
```

**Example Output:**

```
// Returns a boolean indicating whether the position is liquidatable, and three integers representing pnl, fundingFee, and borrowFee respectively.
```

### Validate Liquidation With Posid And Price

This function is used to check if a position is eligible for liquidation, given a specific price.

**Example Input:**

```solidity
liquidateVault.validateLiquidationWithPosidAndPrice(
    uint256 _posId,
    uint256 _price
);
```

**Example Output:**

```
// Returns a boolean indicating whether the position is liquidatable, and three integers representing pnl, fundingFee, and borrowFee respectively.
```

### Validate Liquidation

This function calculates the profit and loss (PnL), funding fee, and borrow fee for a position and checks if the position is eligible for liquidation.

**Example Input:**

```solidity
liquidateVault.validateLiquidation(
    uint256 _tokenId,
    bool _isLong,
    uint256 _size,
    uint256 _averagePrice,
    uint256 _lastPrice,
    uint256 _lastIncreasedTime,
    uint256 _accruedBorrowFee,
    int256 _fundingIndex,
    uint256 _collateral
);
```

**Example Output:**

```
// Returns a boolean indicating whether the position is liquidatable, and three integers representing pnl, fundingFee, and borrowFee respectively.
```
