Esempio n. 1
0
 def get_tx_done_block(ask_amount, bid_amount, traded_amount,
                       ask_total_traded, bid_total_traded):
     ask_pair = AssetPair(AssetAmount(ask_amount, 'BTC'),
                          AssetAmount(ask_amount, 'MB'))
     bid_pair = AssetPair(AssetAmount(bid_amount, 'BTC'),
                          AssetAmount(bid_amount, 'MB'))
     ask = Order(OrderId(TraderId('0' * 40), OrderNumber(1)), ask_pair,
                 Timeout(3600), Timestamp.now(), True)
     ask._traded_quantity = ask_total_traded
     bid = Order(OrderId(TraderId('1' * 40), OrderNumber(1)), bid_pair,
                 Timeout(3600), Timestamp.now(), False)
     bid._traded_quantity = bid_total_traded
     tx = Transaction(
         TransactionId(TraderId('0' * 40), TransactionNumber(1)),
         AssetPair(AssetAmount(traded_amount, 'BTC'),
                   AssetAmount(traded_amount, 'MB')),
         OrderId(TraderId('0' * 40), OrderNumber(1)),
         OrderId(TraderId('1' * 40), OrderNumber(1)), Timestamp(0.0))
     tx.transferred_assets.first += AssetAmount(traded_amount, 'BTC')
     tx.transferred_assets.second += AssetAmount(traded_amount, 'MB')
     tx_done_block = MarketBlock()
     tx_done_block.type = 'tx_done'
     tx_done_block.transaction = {
         'ask': ask.to_status_dictionary(),
         'bid': bid.to_status_dictionary(),
         'tx': tx.to_dictionary(),
         'version': MarketCommunity.PROTOCOL_VERSION
     }
     tx_done_block.transaction['ask']['address'], tx_done_block.transaction[
         'ask']['port'] = "1.1.1.1", 1234
     tx_done_block.transaction['bid']['address'], tx_done_block.transaction[
         'bid']['port'] = "1.1.1.1", 1234
     return tx_done_block
Esempio n. 2
0
    def setUp(self, annotate=True):
        yield super(MatchingEngineTestSuite, self).setUp(annotate=annotate)
        # Object creation
        self.ask = Ask(
            OrderId(TraderId('2'), OrderNumber(1)),
            AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(30), Timestamp.now())
        self.bid = Bid(
            OrderId(TraderId('4'), OrderNumber(2)),
            AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(30), Timestamp.now())
        self.ask_order = Order(
            OrderId(TraderId('5'), OrderNumber(3)),
            AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(30), Timestamp.now(), True)
        self.bid_order = Order(
            OrderId(TraderId('6'), OrderNumber(4)),
            AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(30), Timestamp.now(), False)
        self.order_book = OrderBook()
        self.matching_engine = MatchingEngine(
            PriceTimeStrategy(self.order_book))

        self.ask_count = 2
        self.bid_count = 2
Esempio n. 3
0
 def from_unpack_list(cls, trader_id, message_number, timestamp, order_number, recipient_trader_id,
                      recipient_order_number, proposal_id, price, price_type, quantity, quantity_type, ip, port):
     return TradePayload(MessageId(TraderId(trader_id), MessageNumber(message_number)), Timestamp(timestamp),
                         OrderNumber(order_number),
                         OrderId(TraderId(recipient_trader_id), OrderNumber(recipient_order_number)),
                         proposal_id, Price(price, price_type),
                         Quantity(quantity, quantity_type), SocketAddress(ip, port))
Esempio n. 4
0
    def test_e2e_trade_dht(self):
        """
        Test a full trade with (dummy assets), where both traders are not connected to each other
        """
        yield self.introduce_nodes()

        for node in self.nodes:
            for other in self.nodes:
                if other != node:
                    node.dht.walk_to(other.endpoint.wan_address)
        yield self.deliver_messages()

        # Remove the address from the mid registry from the trading peers
        self.nodes[0].overlay.mid_register.pop(
            TraderId(self.nodes[1].overlay.mid))
        self.nodes[1].overlay.mid_register.pop(
            TraderId(self.nodes[0].overlay.mid))

        for node in self.nodes:
            node.dht.store_peer()
        yield self.deliver_messages()

        yield self.nodes[0].overlay.create_ask(
            AssetPair(AssetAmount(10, 'DUM1'), AssetAmount(10, 'DUM2')), 3600)
        yield self.nodes[1].overlay.create_bid(
            AssetPair(AssetAmount(10, 'DUM1'), AssetAmount(10, 'DUM2')), 3600)

        yield self.sleep(0.5)

        # Verify that the trade has been made
        self.assertTrue(self.nodes[0].overlay.transaction_manager.find_all())
        self.assertTrue(self.nodes[1].overlay.transaction_manager.find_all())
Esempio n. 5
0
    def test_from_network(self):
        # Test for from network
        now = Timestamp.now()
        data = Bid.from_network(
            type(
                'Data', (object, ), {
                    "trader_id": TraderId('0'),
                    "order_number": OrderNumber(2),
                    "message_number": MessageNumber('message_number'),
                    "price": Price(63400, 'BTC'),
                    "quantity": Quantity(40, 'MC'),
                    "timeout": Timeout(30),
                    "timestamp": now,
                    "public_key": 'a',
                    "signature": 'b'
                }))

        self.assertEquals(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            data.message_id)
        self.assertEquals(Price(63400, 'BTC'), data.price)
        self.assertEquals(Quantity(40, 'MC'), data.quantity)
        self.assertEquals(float(Timeout(30)), float(data.timeout))
        self.assertEquals(now, data.timestamp)
        self.assertEquals('a', data._public_key)
        self.assertEquals('b', data._signature)
Esempio n. 6
0
    def test_from_network(self):
        # Test for from network
        data = Payment.from_network(
            type(
                'Data', (object, ), {
                    "message_id":
                    MessageId(TraderId("0"), MessageNumber(1)),
                    "transaction_id":
                    TransactionId(TraderId('2'), TransactionNumber(2)),
                    "transferee_quantity":
                    Quantity(3, 'MC'),
                    "transferee_price":
                    Price(2, 'BTC'),
                    "address_from":
                    WalletAddress('a'),
                    "address_to":
                    WalletAddress('b'),
                    "payment_id":
                    PaymentId('aaa'),
                    "timestamp":
                    Timestamp(4.0),
                    "success":
                    True
                }))

        self.assertEquals(MessageId(TraderId("0"), MessageNumber(1)),
                          data.message_id)
        self.assertEquals(TransactionId(TraderId('2'), TransactionNumber(2)),
                          data.transaction_id)
        self.assertEquals(Quantity(3, 'MC'), data.transferee_quantity)
        self.assertEquals(Price(2, 'BTC'), data.transferee_price)
        self.assertEquals(Timestamp(4.0), data.timestamp)
        self.assertTrue(data.success)
Esempio n. 7
0
    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(OrderId(TraderId('0'), OrderNumber(1)),
                         Price(100, 'BTC'), Quantity(5, 'MC'), Timeout(0.0),
                         Timestamp(float("inf")), True)
        self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                          Price(100, 'BTC'), Quantity(100, 'MC'), Timeout(0.0),
                          Timestamp(float("inf")), True)

        self.order_timestamp = Timestamp.now()
        self.order = Order(OrderId(TraderId("0"), OrderNumber(3)),
                           Price(100, 'BTC'), Quantity(30, 'MC'),
                           Timeout(5000), self.order_timestamp, False)
        self.order2 = Order(OrderId(TraderId("0"), OrderNumber(4)),
                            Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(5),
                            Timestamp(time.time() - 1000), True)
Esempio n. 8
0
 def test_to_network(self):
     # Test for to network
     self.assertEquals((TraderId('1'), (TraderId('0'), MessageNumber('message_number'),
                                        OrderNumber(1), TraderId('1'),
                                        OrderNumber(2), self.proposed_trade.proposal_id,
                                        Price(63400, 'BTC'), Quantity(30, 'MC'),
                                        Timestamp(1462224447.117))), self.proposed_trade.to_network())
Esempio n. 9
0
    def test_from_network(self):
        # Test for from network
        data = ProposedTrade.from_network(
            type(
                'Data', (object, ), {
                    "trader_id": TraderId('0'),
                    "message_number": MessageNumber('message_number'),
                    "order_number": OrderNumber(1),
                    "recipient_trader_id": TraderId('1'),
                    "recipient_order_number": OrderNumber(2),
                    "proposal_id": 1234,
                    "timestamp": Timestamp(1462224447.117),
                    "price": Price(63400, 'BTC'),
                    "quantity": Quantity(30, 'MC')
                }))

        self.assertEquals(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            data.message_id)
        self.assertEquals(OrderId(TraderId('0'), OrderNumber(1)),
                          data.order_id)
        self.assertEquals(OrderId(TraderId('1'), OrderNumber(2)),
                          data.recipient_order_id)
        self.assertEquals(1234, data.proposal_id)
        self.assertEquals(Price(63400, 'BTC'), data.price)
        self.assertEquals(Quantity(30, 'MC'), data.quantity)
        self.assertEquals(Timestamp(1462224447.117), data.timestamp)
Esempio n. 10
0
 def test_to_network(self):
     # Test for to network
     self.assertEquals(
         (MessageId(TraderId('0'), MessageNumber(1)), self.tick.timestamp,
          OrderNumber(1), Price(63400, 'BTC'), Quantity(
              30, 'MC'), self.tick.timeout),
         self.tick.to_network(MessageId(TraderId('0'), MessageNumber(1))))
Esempio n. 11
0
 def setUp(self):
     # Object creation
     self.trade = Trade(
         MessageId(TraderId('0'), MessageNumber('message_number')),
         OrderId(TraderId('0'), OrderNumber(3)),
         OrderId(TraderId('0'), OrderNumber(4)), 1234,
         Timestamp(1462224447.117))
Esempio n. 12
0
    def test_encode_match(self):
        """
        Test encoding and decoding of a match message
        """
        message = MockObject()
        meta_msg = self.market_community.get_meta_message(u"match")

        match_payload = MatchPayload.Implementation(meta_msg, TraderId('abc'),
                                                    MessageNumber('3'),
                                                    OrderNumber(4),
                                                    Price(1, 'BTC'),
                                                    Quantity(2, 'MC'),
                                                    Timeout(3600),
                                                    Timestamp.now(),
                                                    '192.168.1.1', 1234,
                                                    OrderNumber(3),
                                                    Quantity(2, 'MC'),
                                                    TraderId('abc'),
                                                    TraderId('def'),
                                                    'match_id')
        message.payload = match_payload
        packet, = self.conversion._encode_match(message)
        self.assertTrue(packet)

        _, decoded = self.conversion._decode_match(
            self.get_placeholder_msg(u"match"), 0, packet)

        self.assertTrue(decoded)
        self.assertEqual(decoded.match_id, 'match_id')
Esempio n. 13
0
    def test_from_network(self):
        # Test for from network
        data = ProposedTrade.from_network(
            type(
                'Data', (object, ), {
                    "trader_id":
                    TraderId(b'0'),
                    "order_number":
                    OrderNumber(1),
                    "recipient_order_id":
                    OrderId(TraderId('1'), OrderNumber(2)),
                    "proposal_id":
                    1234,
                    "timestamp":
                    Timestamp(1462224447.117),
                    "assets":
                    AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB'))
                }))

        self.assertEquals(TraderId(b'0'), data.trader_id)
        self.assertEquals(OrderId(TraderId(b'0'), OrderNumber(1)),
                          data.order_id)
        self.assertEquals(OrderId(TraderId(b'1'), OrderNumber(2)),
                          data.recipient_order_id)
        self.assertEquals(1234, data.proposal_id)
        self.assertEquals(
            AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')),
            data.assets)
        self.assertEquals(Timestamp(1462224447.117), data.timestamp)
Esempio n. 14
0
 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))
Esempio n. 15
0
    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()
Esempio n. 16
0
 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))
Esempio n. 17
0
 def setUp(self):
     # Object creation
     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)
Esempio n. 18
0
    def test_proposed_trade_cache_timeout(self):
        """
        Test the timeout method of a proposed trade request in the cache
        """
        ask = Ask(
            OrderId(TraderId(self.market_community.mid), OrderNumber(24)),
            Price(63400, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600),
            Timestamp.now())
        order = Order(OrderId(TraderId("0"), OrderNumber(23)),
                      Price(20, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600.0),
                      Timestamp.now(), False)
        self.market_community.order_book.insert_ask(ask)
        self.assertEqual(len(self.market_community.order_book.asks), 1)
        self.market_community.order_manager.order_repository.add(order)
        order.reserve_quantity_for_tick(self.proposed_trade.recipient_order_id,
                                        Quantity(30, 'DUM2'))
        self.market_community.order_manager.order_repository.update(order)

        mocked_match_message = MockObject()
        mocked_match_message.payload = MockObject()
        mocked_match_message.payload.matchmaker_trader_id = 'a'
        self.market_community.incoming_match_messages[
            'a'] = mocked_match_message

        def mocked_send_decline(*_):
            mocked_send_decline.called = True

        mocked_send_decline.called = False
        self.market_community.send_decline_match_message = mocked_send_decline

        cache = ProposedTradeRequestCache(self.market_community,
                                          self.proposed_trade, 'a')
        cache.on_timeout()
        self.assertTrue(mocked_send_decline.called)
Esempio n. 19
0
    def from_database(cls, data, payments):
        """
        Create a Transaction object based on information in the database.
        """
        trader_id, transaction_number, order_trader_id, order_number, partner_trader_id, partner_order_number,\
        asset1_amount, asset1_type, asset1_transferred, asset2_amount, asset2_type, asset2_transferred,\
        transaction_timestamp, sent_wallet_info, received_wallet_info, incoming_address, outgoing_address,\
        partner_incoming_address, partner_outgoing_address, match_id = data

        transaction_id = TransactionId(TraderId(str(trader_id)), TransactionNumber(transaction_number))
        transaction = cls(transaction_id,
                          AssetPair(AssetAmount(asset1_amount, str(asset1_type)),
                                    AssetAmount(asset2_amount, str(asset2_type))),
                          OrderId(TraderId(str(order_trader_id)), OrderNumber(order_number)),
                          OrderId(TraderId(str(partner_trader_id)), OrderNumber(partner_order_number)),
                          Timestamp(float(transaction_timestamp)))

        transaction._transferred_assets = AssetPair(AssetAmount(asset1_transferred, str(asset1_type)),
                                                    AssetAmount(asset2_transferred, str(asset2_type)))
        transaction.sent_wallet_info = sent_wallet_info
        transaction.received_wallet_info = received_wallet_info
        transaction.incoming_address = WalletAddress(str(incoming_address))
        transaction.outgoing_address = WalletAddress(str(outgoing_address))
        transaction.partner_incoming_address = WalletAddress(str(partner_incoming_address))
        transaction.partner_outgoing_address = WalletAddress(str(partner_outgoing_address))
        transaction.match_id = str(match_id)
        transaction._payments = payments

        return transaction
Esempio n. 20
0
    def test_on_introduction_request(self):
        """
        Test that when we receive an intro request with a orders bloom filter, we send an order sync back
        """
        def on_send_offer_sync(_, tick):
            self.assertIsInstance(tick, Tick)
            on_send_offer_sync.called = True

        on_send_offer_sync.called = False

        candidate = WalkCandidate(("127.0.0.1", 1234), False,
                                  ("127.0.0.1", 1234), ("127.0.0.1", 1234),
                                  u"public")
        candidate.associate(self.market_community.my_member)
        payload = self.market_community.create_introduction_request(
            candidate, True).payload

        self.market_community.order_book.insert_ask(self.ask)
        self.market_community.order_book.insert_bid(self.bid)
        self.market_community.update_ip(TraderId('0'), ("127.0.0.1", 1234))
        self.market_community.update_ip(TraderId('1'), ("127.0.0.1", 1234))
        self.market_community.send_offer_sync = on_send_offer_sync

        message = MockObject()
        message.payload = payload
        message.candidate = candidate
        self.market_community.on_introduction_request([message])
        self.assertTrue(on_send_offer_sync.called)
Esempio n. 21
0
    def test_from_network(self):
        # Test for from network
        data = Payment.from_network(
            type(
                'Data', (object, ), {
                    "trader_id":
                    TraderId(b"0"),
                    "transaction_id":
                    TransactionId(TraderId(b'2'), TransactionNumber(2)),
                    "transferred_assets":
                    AssetAmount(3, 'BTC'),
                    "address_from":
                    WalletAddress('a'),
                    "address_to":
                    WalletAddress('b'),
                    "payment_id":
                    PaymentId('aaa'),
                    "timestamp":
                    Timestamp(4.0),
                    "success":
                    True
                }))

        self.assertEquals(TraderId(b"0"), data.trader_id)
        self.assertEquals(TransactionId(TraderId(b'2'), TransactionNumber(2)),
                          data.transaction_id)
        self.assertEquals(AssetAmount(3, 'BTC'), data.transferred_assets)
        self.assertEquals(Timestamp(4.0), data.timestamp)
        self.assertTrue(data.success)
Esempio n. 22
0
 def test_properties(self):
     """
     Test the start transaction payload
     """
     self.assertEquals(MessageNumber('1'),
                       self.start_transaction_payload.message_number)
     self.assertEquals(TransactionNumber(2),
                       self.start_transaction_payload.transaction_number)
     self.assertEquals(Timestamp(0.0),
                       self.start_transaction_payload.timestamp)
     self.assertEquals(TraderId('2'),
                       self.start_transaction_payload.transaction_trader_id)
     self.assertEquals(TraderId('2'),
                       self.start_transaction_payload.order_trader_id)
     self.assertEquals(OrderNumber(3),
                       self.start_transaction_payload.order_number)
     self.assertEquals(TraderId('0'),
                       self.start_transaction_payload.recipient_trader_id)
     self.assertEquals(
         OrderNumber(4),
         self.start_transaction_payload.recipient_order_number)
     self.assertEquals(1236, self.start_transaction_payload.proposal_id)
     self.assertEquals(Price(2, 'BTC'),
                       self.start_transaction_payload.price)
     self.assertEquals(Quantity(3, 'MC'),
                       self.start_transaction_payload.quantity)
Esempio n. 23
0
 def setUp(self):
     # Object creation
     self.proposed_trade_payload = TradePayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('message_number'),
         OrderNumber(1), TraderId('1'), OrderNumber(2), 1235,
         Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117),
         '192.168.1.1', 1234)
Esempio n. 24
0
 def setUp(self):
     # Object creation
     self.payment_payload = PaymentPayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('1'), TraderId('2'),
         TransactionNumber(2), Quantity(20, 'MC'), Price(10, 'BTC'),
         WalletAddress('a'), WalletAddress('b'), PaymentId('3'),
         Timestamp(0.0), True)
Esempio n. 25
0
 def setUp(self):
     # Object creation
     self.start_transaction_payload = StartTransactionPayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('1'), TraderId('2'),
         TransactionNumber(2), TraderId('2'), OrderNumber(3), TraderId('0'),
         OrderNumber(4), 1236, Price(2, 'BTC'), Quantity(3, 'MC'),
         Timestamp(0.0))
Esempio n. 26
0
    def from_database(cls, data, payments):
        """
        Create a Transaction object based on information in the database.
        """
        trader_id, transaction_number, order_trader_id, order_number, partner_trader_id, partner_order_number, price,\
        price_type, transferred_price, quantity, quantity_type, transferred_quantity, transaction_timestamp,\
        sent_wallet_info, received_wallet_info, incoming_address, outgoing_address, partner_incoming_address,\
        partner_outgoing_address, match_id = data

        transaction_id = TransactionId(TraderId(str(trader_id)),
                                       TransactionNumber(transaction_number))
        transaction = cls(
            transaction_id, Price(price, str(price_type)),
            Quantity(quantity, str(quantity_type)),
            OrderId(TraderId(str(order_trader_id)), OrderNumber(order_number)),
            OrderId(TraderId(str(partner_trader_id)),
                    OrderNumber(partner_order_number)),
            Timestamp(float(transaction_timestamp)))

        transaction._transferred_price = Price(transferred_price,
                                               str(price_type))
        transaction._transferred_quantity = Quantity(transferred_quantity,
                                                     str(quantity_type))
        transaction.sent_wallet_info = sent_wallet_info
        transaction.received_wallet_info = received_wallet_info
        transaction.incoming_address = WalletAddress(str(incoming_address))
        transaction.outgoing_address = WalletAddress(str(outgoing_address))
        transaction.partner_incoming_address = WalletAddress(
            str(partner_incoming_address))
        transaction.partner_outgoing_address = WalletAddress(
            str(partner_outgoing_address))
        transaction.match_id = str(match_id)
        transaction._payments = payments

        return transaction
Esempio n. 27
0
 def setUp(self):
     # Object creation
     self.payment = Payment(TraderId("0"),
                            TransactionId(TraderId('2'), TransactionNumber(2)),
                            AssetAmount(3, 'BTC'),
                            WalletAddress('a'), WalletAddress('b'),
                            PaymentId('aaa'), Timestamp(4.0), True)
Esempio n. 28
0
 def from_unpack_list(cls, trader_id, timestamp, order_number, asset1_amount, asset1_type, asset2_amount,
                      asset2_type, timeout, traded, recipient_order_number, match_quantity,
                      match_trader_id, matchmaker_trader_id, match_id):
     return MatchPayload(TraderId(trader_id), Timestamp(timestamp), OrderNumber(order_number),
                         AssetPair(AssetAmount(asset1_amount, asset1_type), AssetAmount(asset2_amount, asset2_type)),
                         Timeout(timeout), traded, OrderNumber(recipient_order_number),
                         match_quantity, TraderId(match_trader_id), TraderId(matchmaker_trader_id), match_id)
Esempio n. 29
0
 def setUp(self):
     # Object creation
     self.match_payload = MatchPayload.Implementation(
         MetaObject(), TraderId('0'), MessageNumber('message_number'),
         OrderNumber(1), Price(63400, 'BTC'), Quantity(30, 'MC'),
         Timeout(1470004447.117), Timestamp(1462224447.117), "1.1.1.1", 1,
         OrderNumber(2), Quantity(20, 'MC'), TraderId('1'), TraderId('2'),
         'a')
Esempio n. 30
0
 def from_unpack_list(cls, trader_id, timestamp, transaction_trader_id,
                      transaction_number, incoming_address,
                      outgoing_address):
     return WalletInfoPayload(
         TraderId(trader_id), Timestamp(timestamp),
         TransactionId(TraderId(transaction_trader_id),
                       TransactionNumber(transaction_number)),
         WalletAddress(incoming_address), WalletAddress(outgoing_address))