示例#1
0
def imbalance_fee_sender(fee_schedule: FeeScheduleState,
                         amount: PaymentWithFeeAmount,
                         balance: Balance) -> FeeAmount:
    if not fee_schedule._penalty_func:
        return FeeAmount(0)

    try:
        return FeeAmount(
            # Mediator is loosing balance on his channel side
            round(
                fee_schedule._penalty_func(balance - amount) -
                fee_schedule._penalty_func(balance)))
    except ValueError:
        raise UndefinedMediationFee()
示例#2
0
def imbalance_fee_receiver(fee_schedule: FeeScheduleState,
                           amount: PaymentWithFeeAmount,
                           balance: Balance) -> FeeAmount:
    if not fee_schedule._penalty_func:
        return FeeAmount(0)

    # Calculate the mediators balance
    balance = fee_schedule._penalty_func.x_list[-1] - balance
    try:
        return FeeAmount(
            # Mediator is gaining balance on his channel side
            round(
                fee_schedule._penalty_func(balance + amount) -
                fee_schedule._penalty_func(balance)))
    except ValueError:
        raise UndefinedMediationFee()