Пример #1
0
    def test_10_bad_ptx(self):
        # Invalid PTX sent, swap should stall and ITx and PTx should be reclaimed by senders
        logging.info('---------- Test bad PTx, LTC to BTC')
        swap_clients = self.swap_clients

        swap_value = make_int(random.uniform(0.001, 10.0), scale=8, r=1)
        logging.info('swap_value {}'.format(format_amount(swap_value, 8)))
        offer_id = swap_clients[0].postOffer(Coins.LTC, Coins.BTC, swap_value, 0.1 * COIN, swap_value, SwapTypes.SELLER_FIRST,
                                             SEQUENCE_LOCK_BLOCKS, 10)

        wait_for_offer(test_delay_event, swap_clients[1], offer_id)
        offer = swap_clients[1].getOffer(offer_id)
        bid_id = swap_clients[1].postBid(offer_id, offer.amount_from)
        swap_clients[1].setBidDebugInd(bid_id, DebugTypes.MAKE_INVALID_PTX)

        wait_for_bid(test_delay_event, swap_clients[0], bid_id)
        swap_clients[0].acceptBid(bid_id)

        wait_for_bid(test_delay_event, swap_clients[0], bid_id, BidStates.SWAP_COMPLETED, wait_for=120)
        wait_for_bid(test_delay_event, swap_clients[1], bid_id, BidStates.SWAP_COMPLETED, sent=True, wait_for=120)

        js_0_bid = json.loads(urlopen('http://127.0.0.1:1800/json/bids/{}'.format(bid_id.hex())).read())
        js_1_bid = json.loads(urlopen('http://127.0.0.1:1801/json/bids/{}'.format(bid_id.hex())).read())
        assert(js_0_bid['itx_state'] == 'Refunded')
        assert(js_1_bid['ptx_state'] == 'Refunded')

        js_0 = json.loads(urlopen('http://127.0.0.1:1800/json').read())
        js_1 = json.loads(urlopen('http://127.0.0.1:1801/json').read())
        assert(js_0['num_swapping'] == 0 and js_0['num_watched_outputs'] == 0)
        assert(js_1['num_swapping'] == 0 and js_1['num_watched_outputs'] == 0)
Пример #2
0
 def test_case(vs, vf, expect_int):
     i = make_int(vs)
     assert(i == expect_int and isinstance(i, int))
     i = make_int(vf)
     assert(i == expect_int and isinstance(i, int))
     vs_out = format_amount(i, 8)
     # Strip
     for i in range(7):
         if vs_out[-1] == '0':
             vs_out = vs_out[:-1]
     if '.' in vs:
         assert(vs_out == vs)
     else:
         assert(vs_out[:-2] == vs)
Пример #3
0
    def test_rate(self):
        scale_from = 8
        scale_to = 12
        amount_from = 100 * (10 ** scale_from)
        rate = 0.1 * (10 ** scale_to)

        amount_to = int((amount_from * rate) // (10 ** scale_from))
        assert('100.00000000' == format_amount(amount_from, scale_from))
        assert('10.000000000000' == format_amount(amount_to, scale_to))

        rate_check = int((amount_to / amount_from) * (10 ** scale_from))
        assert(rate == rate_check)

        scale_from = 12
        scale_to = 8
        amount_from = 1 * (10 ** scale_from)
        rate = 12 * (10 ** scale_to)

        amount_to = int((amount_from * rate) // (10 ** scale_from))
        assert('1.000000000000' == format_amount(amount_from, scale_from))
        assert('12.00000000' == format_amount(amount_to, scale_to))

        rate_check = int((amount_to / amount_from) * (10 ** scale_from))
        assert(rate == rate_check)
Пример #4
0
    def test_rate(self):
        scale_from = 8
        scale_to = 12
        amount_from = make_int(100, scale_from)
        rate = make_int(0.1, scale_to)

        amount_to = int((amount_from * rate) // (10**scale_from))
        assert ('100.00000000' == format_amount(amount_from, scale_from))
        assert ('10.000000000000' == format_amount(amount_to, scale_to))

        rate_check = make_int((amount_to / amount_from), scale_from)
        assert (rate == rate_check)

        scale_from = 12
        scale_to = 8
        amount_from = make_int(1, scale_from)
        rate = make_int(12, scale_to)

        amount_to = int((amount_from * rate) // (10**scale_from))
        assert ('1.000000000000' == format_amount(amount_from, scale_from))
        assert ('12.00000000' == format_amount(amount_to, scale_to))

        rate_check = make_int((amount_to / amount_from), scale_from)
        assert (rate == rate_check)

        scale_from = 8
        scale_to = 8
        amount_from = make_int(0.073, scale_from)
        amount_to = make_int(10, scale_to)
        rate = make_int(amount_to / amount_from, scale_to, r=1)
        amount_to_recreate = int((amount_from * rate) // (10**scale_from))
        assert ('10.00000000' == format_amount(amount_to_recreate, scale_to))

        scale_from = 8
        scale_to = 12
        amount_from = make_int(10.0, scale_from)
        amount_to = make_int(0.06935, scale_to)
        rate = make_int(amount_to / amount_from, scale_from, r=1)
        amount_to_recreate = int((amount_from * rate) // (10**scale_from))
        assert ('0.069350000000' == format_amount(amount_to_recreate,
                                                  scale_to))

        scale_from = 12
        scale_to = 8
        amount_from = make_int(0.06935, scale_from)
        amount_to = make_int(10.0, scale_to)
        rate = make_int(amount_to / amount_from, scale_from, r=1)
        amount_to_recreate = int((amount_from * rate) // (10**scale_from))
        assert ('10.00000000' == format_amount(amount_to_recreate, scale_to))