```\nFile: CrossCurrencyfCashVault.sol\n    /**\n     * @notice During settlement all of the fCash balance in the lend currency will be redeemed to the\n     * underlying token and traded back to the borrow currency. All of the borrow currency will be deposited\n     * into the Notional contract as asset tokens and held for accounts to withdraw. Settlement can only\n     * be called after maturity.\n     * @param maturity the maturity to settle\n     * @param settlementTrade details for the settlement trade\n     */\n    function settleVault(uint256 maturity, uint256 strategyTokens, bytes calldata settlementTrade) external {\n        require(maturity <= block.timestamp, "Cannot Settle");\n        VaultState memory vaultState = NOTIONAL.getVaultState(address(this), maturity);\n        require(vaultState.isSettled == false);\n        require(vaultState.totalStrategyTokens >= strategyTokens);\n\n        RedeemParams memory params = abi.decode(settlementTrade, (RedeemParams));\n    \n        // The only way for underlying value to be negative would be if the vault has somehow ended up with a borrowing\n        // position in the lend underlying currency. This is explicitly prevented during redemption.\n        uint256 underlyingValue = convertStrategyToUnderlying(\n            address(0), vaultState.totalStrategyTokens, maturity\n        ).toUint();\n\n        // Authenticate the minimum purchase amount, all tokens will be sold given this slippage limit.\n        uint256 minAllowedPurchaseAmount = (underlyingValue * settlementSlippageLimit) / SETTLEMENT_SLIPPAGE_PRECISION;\n        require(params.minPurchaseAmount >= minAllowedPurchaseAmount, "Purchase Limit");\n\n        NOTIONAL.redeemStrategyTokensToCash(maturity, strategyTokens, settlementTrade);\n\n        // If there are no more strategy tokens left, then mark the vault as settled\n        vaultState = NOTIONAL.getVaultState(address(this), maturity);\n        if (vaultState.totalStrategyTokens == 0) {\n            NOTIONAL.settleVault(address(this), maturity);\n        }\n    }\n```\n