Liquidating pending quotes doesn't return trading fee to party A
When a user is liquidated, the trading fees of the pending quotes aren't returned.\\nWhen a pending/locked quote is canceled, the trading fee is sent back to party A, e.g.\\nBut, when a pending quote is liquidated, the trading fee is not used for the liquidation. Instead, the fee collector keeps the funds:\\n```\\n    function liquidatePendingPositionsPartyA(address partyA) internal {\\n        QuoteStorage.Layout storage quoteLayout = QuoteStorage.layout();\\n        require(\\n            MAStorage.layout().liquidationStatus[partyA],\\n            "LiquidationFacet: PartyA is solvent"\\n        );\\n        for (uint256 index = 0; index < quoteLayout.partyAPendingQuotes[partyA].length; index++) {\\n            Quote storage quote = quoteLayout.quotes[\\n                quoteLayout.partyAPendingQuotes[partyA][index]\\n            ];\\n            if (\\n                (quote.quoteStatus == QuoteStatus.LOCKED ||\\n                    quote.quoteStatus == QuoteStatus.CANCEL_PENDING) &&\\n                quoteLayout.partyBPendingQuotes[quote.partyB][partyA].length > 0\\n            ) {\\n                delete quoteLayout.partyBPendingQuotes[quote.partyB][partyA];\\n                AccountStorage\\n                .layout()\\n                .partyBPendingLockedBalances[quote.partyB][partyA].makeZero();\\n            }\\n            quote.quoteStatus = QuoteStatus.LIQUIDATED;\\n            quote.modifyTimestamp = block.timestamp;\\n        }\\n        AccountStorage.layout().pendingLockedBalances[partyA].makeZero();\\n        delete quoteLayout.partyAPendingQuotes[partyA];\\n    }\\n```\\n\\n```\\n    function liquidatePartyB(\\n        address partyB,\\n        address partyA,\\n        SingleUpnlSig memory upnlSig\\n    ) internal {\\n        // // rest of code\\n        uint256[] storage pendingQuotes = quoteLayout.partyAPendingQuotes[partyA];\\n\\n        for (uint256 index = 0; index < pendingQuotes.length; ) {\\n            Quote storage quote = quoteLayout.quotes[pendingQuotes[index]];\\n            if (\\n                quote.partyB == partyB &&\\n                (quote.quoteStatus == QuoteStatus.LOCKED ||\\n                    quote.quoteStatus == QuoteStatus.CANCEL_PENDING)\\n            ) {\\n                accountLayout.pendingLockedBalances[partyA].subQuote(quote);\\n\\n                pendingQuotes[index] = pendingQuotes[pendingQuotes.length - 1];\\n                pendingQuotes.pop();\\n                quote.quoteStatus = QuoteStatus.LIQUIDATED;\\n                quote.modifyTimestamp = block.timestamp;\\n            } else {\\n                index++;\\n            }\\n        }\\n```\\n\\nThese funds should be used to cover the liquidation. Since no trade has been executed, the fee collector shouldn't earn anything.
return the funds to party A. If party A is being liquidated, use the funds to cover the liquidation. Otherwise, party A keeps the funds.
Liquidation doesn't use paid trading fees to cover outstanding balances. Instead, the funds are kept by the fee collector.
```\\n    function liquidatePendingPositionsPartyA(address partyA) internal {\\n        QuoteStorage.Layout storage quoteLayout = QuoteStorage.layout();\\n        require(\\n            MAStorage.layout().liquidationStatus[partyA],\\n            "LiquidationFacet: PartyA is solvent"\\n        );\\n        for (uint256 index = 0; index < quoteLayout.partyAPendingQuotes[partyA].length; index++) {\\n            Quote storage quote = quoteLayout.quotes[\\n                quoteLayout.partyAPendingQuotes[partyA][index]\\n            ];\\n            if (\\n                (quote.quoteStatus == QuoteStatus.LOCKED ||\\n                    quote.quoteStatus == QuoteStatus.CANCEL_PENDING) &&\\n                quoteLayout.partyBPendingQuotes[quote.partyB][partyA].length > 0\\n            ) {\\n                delete quoteLayout.partyBPendingQuotes[quote.partyB][partyA];\\n                AccountStorage\\n                .layout()\\n                .partyBPendingLockedBalances[quote.partyB][partyA].makeZero();\\n            }\\n            quote.quoteStatus = QuoteStatus.LIQUIDATED;\\n            quote.modifyTimestamp = block.timestamp;\\n        }\\n        AccountStorage.layout().pendingLockedBalances[partyA].makeZero();\\n        delete quoteLayout.partyAPendingQuotes[partyA];\\n    }\\n```\\n