':param transaction_id: An transaction id to identify the order
:param price: A price to indicate for which amount to sell or buy
:param quantity: A quantity to indicate how much to sell or buy
:param order_id: The id of your order for this transaction
:param partner_order_id: The id of the order of the other party
:param timestamp: A timestamp when the transaction was created
:type transaction_id: TransactionId
:type price: Price
:type quantity: Quantity
:type order_id: OrderId
:type partner_order_id: OrderId
:type timestamp: Timestamp'

def __init__(self, transaction_id, price, quantity, order_id, partner_order_id, timestamp):

    super(Transaction, self).__init__()
    self._logger = logging.getLogger(self.__class__.__name__)
    assert isinstance(transaction_id, TransactionId), type(transaction_id)
    assert isinstance(price, Price), type(price)
    assert isinstance(quantity, Quantity), type(quantity)
    assert isinstance(order_id, OrderId), type(order_id)
    assert isinstance(partner_order_id, OrderId), type(partner_order_id)
    assert isinstance(timestamp, Timestamp), type(timestamp)
    self._transaction_id = transaction_id
    self._price = price
    self._transferred_price = Price(0, price.wallet_id)
    self._total_price = Price((float(price) * float(quantity)), price.wallet_id)
    self._quantity = quantity
    self._transferred_quantity = Quantity(0, quantity.wallet_id)
    self._order_id = order_id
    self._partner_order_id = partner_order_id
    self._timestamp = timestamp
    self.sent_wallet_info = False
    self.received_wallet_info = False
    self.incoming_address = None
    self.outgoing_address = None
    self.partner_incoming_address = None
    self.partner_outgoing_address = None
    self._payments = []
    self._current_payment = 0
