def withdrawal(self, asset, amount, private_key):
        """
        This function is a wrapper function around the create and execute withdrawal functions to help make this
        processes simpler for the end user by combining these requests in 1 step.
        Execution of this function is as follows::

            withdrawal(asset="SWTH", amount=1.1, private_key=kp))

        The expected return result for this function is the same as the execute_withdrawal function::

            {
                'event_type': 'withdrawal',
                'amount': -100000,
                'asset_id': 'ab38352559b8b203bde5fddfa0b07d8b2525e132',
                'status': 'confirming',
                'id': '96e5f797-435b-40ab-9085-4e95c6749218',
                'blockchain': 'neo',
                'reason_code': 9,
                'address': 'fea2b883725ef2d194c9060f606cd0a0468a2c59',
                'transaction_hash': None,
                'created_at': '2018-08-05T10:03:58.885Z',
                'updated_at': '2018-08-05T10:03:59.828Z',
                'contract_hash': 'a195c1549e7da61b8da315765a790ac7e7633b82'
            }

        :param asset: Script Hash of asset ID from the available products.
        :type asset: str
        :param amount: The amount of coins/tokens to be withdrawn.
        :type amount: float
        :param private_key: The Private Key (ETH) or KeyPair (NEO) for the wallet being used to sign deposit message.
        :type private_key: KeyPair or str
        :return: Dictionary with the status of the withdrawal request and blockchain details.
        """
        create_withdrawal = self.create_withdrawal(asset=asset, amount=amount, private_key=private_key)
        return self.execute_withdrawal(withdrawal_params=create_withdrawal, private_key=private_key)