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