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
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
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
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)
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)