def setUp(self): # Object creation self.proposed_trade = Trade.propose(MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117))
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction( self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose( TraderId('0'), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), Timestamp(0.0)) self.tick = Tick( OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(5, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(float("inf")), True) self.tick2 = Tick( OrderId(TraderId('0'), OrderNumber(2)), AssetPair(AssetAmount(500, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(float("inf")), True) self.order_timestamp = Timestamp.now() self.order = Order( OrderId(TraderId("0"), OrderNumber(3)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')), Timeout(5000), self.order_timestamp, False) self.order.set_verified() self.order2 = Order( OrderId(TraderId("0"), OrderNumber(4)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')), Timeout(5), Timestamp(time.time() - 1000), True) self.order2.set_verified()
def setUp(self, annotate=True): yield super(AbstractTestOrderBook, self).setUp(annotate=annotate) # Object creation self.ask = Ask( OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_ask = Ask( OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0)) self.ask2 = Ask( OrderId(TraderId('1'), OrderNumber(1)), AssetPair(AssetAmount(400, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.bid = Bid( OrderId(TraderId('2'), OrderNumber(1)), AssetPair(AssetAmount(200, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_bid = Bid( OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0)) self.bid2 = Bid( OrderId(TraderId('3'), OrderNumber(1)), AssetPair(AssetAmount(300, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.trade = Trade.propose( TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.order_book = OrderBook()
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')), Timestamp(0.0)) self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(5, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(float("inf")), True) self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)), AssetPair(AssetAmount(500, 'BTC'), AssetAmount(5, 'MC')), Timeout(0), Timestamp(float("inf")), True) self.order_timestamp = Timestamp.now() self.order = Order(OrderId(TraderId("0"), OrderNumber(3)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')), Timeout(5000), self.order_timestamp, False) self.order.set_verified() self.order2 = Order(OrderId(TraderId("0"), OrderNumber(4)), AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')), Timeout(5), Timestamp(time.time() - 1000), True) self.order2.set_verified()
def test_decline_trade(self): """ Test whether a decline trade is sent between nodes if the price of a proposed trade is not right """ yield self.introduce_nodes(self.node_a, self.node_b) yield self.create_send_ask(self.node_a, self.node_b) self.node_b.community.create_bid(9, 'DUM1', 10, 'DUM2', 3600) yield self.parse_assert_packets(self.node_a) # Parse the bid message order_a = self.node_a.community.order_manager.order_repository.find_all( )[0] order_b = self.node_b.community.order_manager.order_repository.find_all( )[0] order_b.reserve_quantity_for_tick(order_a.order_id, order_b.total_quantity) self.node_b.community.order_manager.order_repository.update(order_b) proposed_trade = Trade.propose( self.node_b.community.order_book.message_repository.next_identity( ), order_b.order_id, order_a.order_id, Price(9, 'DUM1'), order_b.total_quantity, Timestamp.now()) self.node_b.community.send_proposed_trade(proposed_trade) deferred = Deferred() def mocked_remove(_): deferred.callback(None) self.node_b.community.order_book.remove_tick = mocked_remove yield self.parse_assert_packets(self.node_a) yield self.parse_assert_packets(self.node_b) yield deferred
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, Price(100, 'BTC'), Quantity(30, 'MC'), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose( MessageId(TraderId('0'), MessageNumber('1')), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), Price(100, 'BTC'), Quantity(30, 'MC'), Timestamp(0.0)) self.tick = Tick( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'), Quantity(5, 'MC'), Timeout(0.0), Timestamp(float("inf")), True) self.tick2 = Tick( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(2)), Price(100, 'BTC'), Quantity(100, 'MC'), Timeout(0.0), Timestamp(float("inf")), True) self.order = Order(OrderId(TraderId("0"), OrderNumber(3)), Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(5000), Timestamp(time.time()), False) self.order2 = Order(OrderId(TraderId("0"), OrderNumber(4)), Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(5), Timestamp(time.time() - 1000), True)
def setUp(self): # Object creation self.proposed_trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117))
def setUp(self, annotate=True): yield super(AbstractTestOrderBook, self).setUp(annotate=annotate) # Object creation self.ask = Ask(OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(1462224447.117), Timestamp(1462224447.117)) self.invalid_ask = Ask(OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(0), Timestamp(0.0)) self.ask2 = Ask(OrderId(TraderId('1'), OrderNumber(1)), Price(400, 'BTC'), Quantity(30, 'MC'), Timeout(1462224447.117), Timestamp(1462224447.117)) self.bid = Bid(OrderId(TraderId('2'), OrderNumber(1)), Price(200, 'BTC'), Quantity(30, 'MC'), Timeout(1462224447.117), Timestamp(1462224447.117)) self.invalid_bid = Bid(OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(0), Timestamp(0.0)) self.bid2 = Bid(OrderId(TraderId('3'), OrderNumber(1)), Price(300, 'BTC'), Quantity(30, 'MC'), Timeout(1462224447.117), Timestamp(1462224447.117)) self.trade = Trade.propose(MessageId(TraderId('0'), MessageNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117)) self.order_book = OrderBook()
def setUp(self): # Object creation self.proposed_trade = Trade.propose( TraderId(b'0'), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117))
def setUp(self): # Object creation self.proposed_trade = Trade.propose( TraderId(b'0'), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.declined_trade = Trade.decline( TraderId(b'0'), Timestamp(1462224447.117), self.proposed_trade, DeclinedTradeReason.ORDER_COMPLETED)
def setUp(self): # Object creation self.proposed_trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.declined_trade = Trade.decline(TraderId('0'), Timestamp(1462224447.117), self.proposed_trade, DeclinedTradeReason.ORDER_COMPLETED)
def setUp(self): # Object creation self.proposed_trade = Trade.propose( MessageId(TraderId('0'), MessageNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117)) self.declined_trade = Trade.decline( MessageId(TraderId('0'), MessageNumber(1)), Timestamp(1462224447.117), self.proposed_trade, DeclinedTradeReason.ORDER_COMPLETED)
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(100, 'MB')), OrderId(TraderId('3'), OrderNumber(2)), OrderId(TraderId('2'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(100, 'MB')), Timestamp(0.0)) self.payment = Payment(TraderId("0"), TransactionId(TraderId('2'), TransactionNumber(2)), AssetAmount(3, 'MB'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True)
def setUp(self, annotate=True): yield super(CommunityTestSuite, self).setUp(annotate=annotate) dummy1_wallet = DummyWallet1() dummy2_wallet = DummyWallet2() self.market_community = MarketCommunity(self.dispersy, self.master_member, self.member) self.market_community.initialize(wallets={ dummy1_wallet.get_identifier(): dummy1_wallet, dummy2_wallet.get_identifier(): dummy2_wallet }, use_database=False) self.market_community.use_local_address = True self.dispersy._lan_address = ("127.0.0.1", 1234) self.dispersy._endpoint.open(self.dispersy) self.dispersy.attach_community(self.market_community) eccrypto = ECCrypto() ec = eccrypto.generate_key(u"curve25519") member = Member(self.dispersy, ec, 1) trader_id = hashlib.sha1(member.public_key).digest().encode('hex') self.ask = Ask( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId(trader_id), OrderNumber(1234)), Price(63400, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600), Timestamp.now()) self.ask.sign(member) self.bid = Bid( MessageId(TraderId('1'), MessageNumber('message_number')), OrderId(TraderId(trader_id), OrderNumber(1235)), Price(343, 'DUM1'), Quantity(22, 'DUM2'), Timeout(3600), Timestamp.now()) self.bid.sign(member) self.order = Order( OrderId(TraderId(self.market_community.mid), OrderNumber(24)), Price(20, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600.0), Timestamp.now(), False) self.proposed_trade = Trade.propose( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(23)), OrderId(TraderId(self.market_community.mid), OrderNumber(24)), Price(20, 'DUM1'), Quantity(30, 'DUM2'), Timestamp.now())
def add_transaction_and_payment(self): """ Add a transaction and a payment to the market """ proposed_trade = Trade.propose(MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117)) transaction = self.session.lm.market_community.transaction_manager.create_from_proposed_trade(proposed_trade) payment = Payment(MessageId(TraderId("0"), MessageNumber("1")), transaction.transaction_id, Quantity(0, 'MC'), Price(20, 'BTC'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True) transaction.add_payment(payment) self.session.lm.market_community.transaction_manager.transaction_repository.update(transaction) return transaction
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction( self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(100, 'MB')), OrderId(TraderId('3'), OrderNumber(2)), OrderId(TraderId('2'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose( TraderId('0'), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(100, 'MB')), Timestamp(0.0)) self.payment = Payment( TraderId("0"), TransactionId(TraderId('2'), TransactionNumber(2)), AssetAmount(3, 'MB'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True)
def add_transaction_and_payment(self): """ Add a transaction and a payment to the market """ proposed_trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(60, 'MB')), Timestamp(1462224447.117)) transaction = self.session.lm.market_community.transaction_manager.create_from_proposed_trade( proposed_trade, 'abcd') payment = Payment(TraderId("0"), transaction.transaction_id, AssetAmount(20, 'BTC'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True) transaction.add_payment(payment) self.session.lm.market_community.transaction_manager.transaction_repository.update(transaction) return transaction
def _search_for_quantity_in_price_level_total(self, tick_entry, quantity_to_trade, order): trading_quantity = quantity_to_trade quantity_to_trade = Quantity(0, quantity_to_trade.wallet_id) self._logger.debug( "Match with the id (%s) was found for order (%s). Price: %i, Quantity: %i)", str(tick_entry.order_id), str(order.order_id), float(tick_entry.price), int(trading_quantity)) order.reserve_quantity_for_tick(tick_entry.tick.order_id, trading_quantity) proposed_trades = [ Trade.propose(self.order_book.message_repository.next_identity(), order.order_id, tick_entry.order_id, tick_entry.price, trading_quantity, Timestamp.now()) ] return quantity_to_trade, proposed_trades
def setUp(self): # Object creation self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, Price(100, 'BTC'), Quantity(30, 'MC'), OrderId(TraderId('3'), OrderNumber(2)), OrderId(TraderId('2'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose( MessageId(TraderId('0'), MessageNumber('1')), OrderId(TraderId('0'), OrderNumber(2)), OrderId(TraderId('1'), OrderNumber(3)), Price(100, 'BTC'), Quantity(30, 'MC'), Timestamp(0.0)) self.payment = Payment( MessageId(TraderId("0"), MessageNumber("1")), TransactionId(TraderId('2'), TransactionNumber(2)), Quantity(3, 'MC'), Price(2, 'BTC'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True)
def setUp(self): # Object creation self.memory_transaction_repository = MemoryTransactionRepository("0") self.transaction_manager = TransactionManager(self.memory_transaction_repository) self.transaction_id = TransactionId(TraderId(b"0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), OrderId(TraderId(b'3'), OrderNumber(2)), OrderId(TraderId(b'2'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose(TraderId(b'0'), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.start_transaction = StartTransaction(TraderId(b'0'), TransactionId(TraderId(b"0"), TransactionNumber(1)), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), 1235, AssetPair(AssetAmount(20, 'BTC'), AssetAmount(20, 'MB')), Timestamp(0.0))
def add_transaction_and_payment(self): """ Add a transaction and a payment to the market """ proposed_trade = Trade.propose( TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(60, 'MB')), Timestamp(1462224447.117)) transaction = self.session.lm.market_community.transaction_manager.create_from_proposed_trade( proposed_trade, 'abcd') payment = Payment(TraderId("0"), transaction.transaction_id, AssetAmount(20, 'BTC'), WalletAddress('a'), WalletAddress('b'), PaymentId('aaa'), Timestamp(4.0), True) transaction.add_payment(payment) self.session.lm.market_community.transaction_manager.transaction_repository.update( transaction) return transaction
def setUp(self): yield super(AbstractTestOrderBook, self).setUp() # Object creation self.ask = Ask(OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_ask = Ask(OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0)) self.ask2 = Ask(OrderId(TraderId('1'), OrderNumber(1)), AssetPair(AssetAmount(400, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.bid = Bid(OrderId(TraderId('2'), OrderNumber(1)), AssetPair(AssetAmount(200, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.invalid_bid = Bid(OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0)) self.bid2 = Bid(OrderId(TraderId('3'), OrderNumber(1)), AssetPair(AssetAmount(300, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now()) self.trade = Trade.propose(TraderId('0'), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.order_book = OrderBook()
def test_counter_trade(self): """ Test whether a counter trade is made between two nodes """ deferred = Deferred() def mocked_start_transaction(*_): deferred.callback(None) self.node_a.community.matching_enabled = False self.node_b.community.matching_enabled = False self.node_a.community.start_transaction = mocked_start_transaction yield self.introduce_nodes(self.node_a, self.node_b) yield self.create_send_ask(self.node_a, self.node_b) # Send a proposed trade message self.node_b.community.create_bid(10, 'DUM1', 10, 'DUM2', 3600) yield self.parse_assert_packets(self.node_a) # Parse the bid message yield self.parse_assert_packets(self.node_b) order_a = self.node_a.community.order_manager.order_repository.find_all( )[0] order_b = self.node_b.community.order_manager.order_repository.find_all( )[0] order_b._traded_quantity = Quantity(5, 'DUM2') self.node_b.community.order_manager.order_repository.update(order_b) order_a.reserve_quantity_for_tick(order_b.order_id, order_a.total_quantity) self.node_a.community.order_manager.order_repository.update(order_a) proposed_trade = Trade.propose( self.node_b.community.order_book.message_repository.next_identity( ), order_a.order_id, order_b.order_id, Price(10, 'DUM1'), order_a.total_quantity, Timestamp.now()) self.node_a.community.send_proposed_trade(proposed_trade) yield self.parse_assert_packets(self.node_b) yield self.parse_assert_packets(self.node_a) yield deferred
def _search_for_quantity_in_price_level_partial(self, tick_entry, quantity_to_trade, order): quantity_to_trade -= tick_entry.quantity self._logger.debug("Match with the id (%s) was found for order (%s) ", str(tick_entry.order_id), str(order.order_id)) order.reserve_quantity_for_tick(tick_entry.tick.order_id, tick_entry.quantity) proposed_trades = [ Trade.propose(self.order_book.message_repository.next_identity(), order.order_id, tick_entry.order_id, tick_entry.price, tick_entry.quantity, Timestamp.now()) ] # Search the next tick quantity_to_trade, trades = self._search_for_quantity_in_price_level( tick_entry.next_tick, quantity_to_trade, order) proposed_trades = proposed_trades + trades return quantity_to_trade, proposed_trades
def setUp(self): # Object creation self.memory_transaction_repository = MemoryTransactionRepository("0") self.transaction_manager = TransactionManager( self.memory_transaction_repository) self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, Price(100, 'BTC'), Quantity(30, 'MC'), OrderId(TraderId('3'), OrderNumber(2)), OrderId(TraderId('2'), OrderNumber(1)), Timestamp(0.0)) self.proposed_trade = Trade.propose( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117)) self.start_transaction = StartTransaction( MessageId(TraderId('0'), MessageNumber('1')), TransactionId(TraderId("0"), TransactionNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), 1235, Price(3600, 'BTC'), Quantity(20, 'MC'), Timestamp(0.0))