<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_user_trades(self, limit=0, offset=0, sort='desc'):
 """Return user's trade history. :param limit: Maximum number of trades to return. If set to 0 or lower, all trades are returned (default: 0). :type limit: int :param offset: Number of trades to skip. :type offset: int :param sort: Method used to sort the results by date and time. Allowed values are "desc" for descending order, and "asc" for ascending order (default: "desc"). :type sort: str | unicode :return: User's trade history. :rtype: [dict] """

        self._log('get user trades')
        res = self._rest_client.post(
            endpoint='/user_transactions',
            payload={
                'book': self.name,
                'limit': limit,
                'offset': offset,
                'sort': sort
            }
        )
        # TODO Workaround for the broken limit param in QuadrigaCX API
        return res[:limit] if len(res) > limit > 0 else res