示例#1
0
def test_edge_weight(addresses):
    channel_id = ChannelID(1)
    participant1 = addresses[0]
    participant2 = addresses[1]
    settle_timeout = 15
    view = ChannelView(TokenNetworkAddress("0x11"), channel_id, participant1,
                       participant2, settle_timeout)
    amount = TokenAmount(int(1e18))  # one RDN

    # no penalty
    assert TokenNetwork.edge_weight(dict(),
                                    dict(view=view),
                                    amount=amount,
                                    fee_penalty=0) == 1

    # channel already used in a previous route
    assert (TokenNetwork.edge_weight({channel_id: 2},
                                     dict(view=view),
                                     amount=amount,
                                     fee_penalty=0) == 3)

    # absolute fee
    view.absolute_fee = FeeAmount(int(0.03e18))
    assert TokenNetwork.edge_weight(dict(),
                                    dict(view=view),
                                    amount=amount,
                                    fee_penalty=100) == 4

    # relative fee
    view.absolute_fee = FeeAmount(0)
    view.relative_fee = 0.01
    assert TokenNetwork.edge_weight(dict(),
                                    dict(view=view),
                                    amount=amount,
                                    fee_penalty=100) == 2
示例#2
0
def test_edge_weight(addresses):
    a = addresses[0]
    b = addresses[1]
    view = ChannelView(1, a, b)

    assert TokenNetwork.edge_weight(
        dict(),
        dict(view=view),
    ) == 1
示例#3
0
def test_edge_weight(addresses):
    channel_id = ChannelIdentifier(1)
    participant1 = addresses[0]
    participant2 = addresses[1]
    settle_timeout = 15
    view = ChannelView(channel_id, participant1, participant2, settle_timeout)

    assert TokenNetwork.edge_weight(
        dict(),
        dict(view=view),
    ) == 1
示例#4
0
def test_edge_weight(addresses):
    # pylint: disable=assigning-non-slot
    channel_id = ChannelID(1)
    participant1 = addresses[0]
    participant2 = addresses[1]
    capacity = TokenAmount(int(20 * 1e18))
    capacity_partner = TokenAmount(int(10 * 1e18))
    channel = Channel(
        token_network_address=TokenNetworkAddress(bytes([1])),
        channel_id=channel_id,
        participant1=participant1,
        participant2=participant2,
        capacity1=capacity,
        capacity2=capacity_partner,
    )
    view, view_partner = channel.views
    amount = PaymentAmount(int(1e18))  # one RDN

    # no penalty
    assert (TokenNetwork.edge_weight(visited={},
                                     view=view,
                                     view_from_partner=view_partner,
                                     amount=amount,
                                     fee_penalty=0) == 1)

    # channel already used in a previous route
    assert (TokenNetwork.edge_weight(
        visited={channel_id: 2},
        view=view,
        view_from_partner=view_partner,
        amount=amount,
        fee_penalty=0,
    ) == 3)

    # absolute fee
    view.fee_schedule_sender.flat = FeeAmount(int(0.03e18))
    assert (TokenNetwork.edge_weight(
        visited={},
        view=view,
        view_from_partner=view_partner,
        amount=amount,
        fee_penalty=100,
    ) == 4)

    # relative fee
    view.fee_schedule_sender.flat = FeeAmount(0)
    view.fee_schedule_sender.proportional = ProportionalFeeAmount(int(0.01e6))
    assert (TokenNetwork.edge_weight(
        visited={},
        view=view,
        view_from_partner=view_partner,
        amount=amount,
        fee_penalty=100,
    ) == 2)

    # partner has not enough capacity for refund (no_refund_weight) -> edge weight +1
    view_partner.capacity = TokenAmount(0)
    assert (TokenNetwork.edge_weight(
        visited={},
        view=view,
        view_from_partner=view_partner,
        amount=amount,
        fee_penalty=100,
    ) == 3)
示例#5
0
def test_edge_weight(addresses):
    # pylint: disable=assigning-non-slot
    channel_id = ChannelID(1)
    participant1 = addresses[0]
    participant2 = addresses[1]
    capacity = TokenAmount(int(20 * 1e18))
    capacity_partner = TokenAmount(int(10 * 1e18))
    settle_timeout = 15
    view = ChannelView(
        token_network_address=TokenNetworkAddress(bytes([1])),
        channel_id=channel_id,
        participant1=participant1,
        participant2=participant2,
        capacity=capacity,
        settle_timeout=settle_timeout,
    )
    view_partner = ChannelView(
        token_network_address=TokenNetworkAddress(bytes([1])),
        channel_id=channel_id,
        participant1=participant2,
        participant2=participant1,
        capacity=capacity_partner,
        settle_timeout=settle_timeout,
    )
    amount = TokenAmount(int(1e18))  # one RDN

    # no penalty
    assert (TokenNetwork.edge_weight(dict(),
                                     dict(view=view),
                                     dict(view=view_partner),
                                     amount=amount,
                                     fee_penalty=0) == 1)

    # channel already used in a previous route
    assert (TokenNetwork.edge_weight({channel_id: 2},
                                     dict(view=view),
                                     dict(view=view_partner),
                                     amount=amount,
                                     fee_penalty=0) == 3)

    # absolute fee
    view.fee_schedule_sender.flat = FeeAmount(int(0.03e18))
    assert (TokenNetwork.edge_weight(dict(),
                                     dict(view=view),
                                     dict(view=view_partner),
                                     amount=amount,
                                     fee_penalty=100) == 4)

    # relative fee
    view.fee_schedule_sender.flat = FeeAmount(0)
    view.fee_schedule_sender.proportional = 0.01
    assert (TokenNetwork.edge_weight(dict(),
                                     dict(view=view),
                                     dict(view=view_partner),
                                     amount=amount,
                                     fee_penalty=100) == 2)

    # partner has not enough capacity for refund (no_refund_weight) -> edge weight +1
    view_partner.capacity = TokenAmount(0)
    assert (TokenNetwork.edge_weight(dict(),
                                     dict(view=view),
                                     dict(view=view_partner),
                                     amount=amount,
                                     fee_penalty=100) == 3)