def num_sats_can_send(self) -> Decimal:
    can_send = 0
    with self.lock:
        if self.channels:
            for c in self.channels.values():
                if (c.is_active() and (not c.is_frozen_for_sending())):
                    can_send += c.available_to_spend(LOCAL)
    fee_base_msat = TRAMPOLINE_FEES[3]['fee_base_msat']
    fee_proportional_millionths = TRAMPOLINE_FEES[3]['fee_proportional_millionths']
    can_send_minus_fees = (((can_send - fee_base_msat) * 1000000) // (1000000 + fee_proportional_millionths))
    can_send_minus_fees = max(0, can_send_minus_fees)
    return (Decimal(can_send_minus_fees) / 1000)
def num_sats_can_send(self) -> Decimal:
    can_send = 0
    with self.lock:
        if self.channels:
            for c in self.channels.values():
                if (c.is_active() and (not c.is_frozen_for_sending())):
                    can_send += c.available_to_spend(LOCAL)
    fee_base_msat = TRAMPOLINE_FEES[3]['fee_base_msat']
    fee_proportional_millionths = TRAMPOLINE_FEES[3]['fee_proportional_millionths']
    can_send_minus_fees = (((can_send - fee_base_msat) * 1000000) // (1000000 + fee_proportional_millionths))
    can_send_minus_fees = max(0, can_send_minus_fees)
    return (Decimal(can_send_minus_fees) / 1000)