def open_channel(self, *, connect_str: str, funding_tx: PartialTransaction, funding_sat: int, push_amt_sat: int, password: str=None) -> Tuple[(Channel, PartialTransaction)]:
    if (funding_sat > LN_MAX_FUNDING_SAT):
        raise Exception(_('Requested channel capacity is over protocol allowed maximum.'))
    coro = self._open_channel_coroutine(connect_str=connect_str, funding_tx=funding_tx, funding_sat=funding_sat, push_sat=push_amt_sat, password=password)
    fut = asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop)
    try:
        (chan, funding_tx) = fut.result()
    except concurrent.futures.TimeoutError:
        raise Exception(_('open_channel timed out'))
    return (chan, funding_tx)
def open_channel(self, *, connect_str: str, funding_tx: PartialTransaction, funding_sat: int, push_amt_sat: int, password: str=None) -> Tuple[(Channel, PartialTransaction)]:
    if (funding_sat > LN_MAX_FUNDING_SAT):
        raise Exception(_('Requested channel capacity is over protocol allowed maximum.'))
    coro = self._open_channel_coroutine(connect_str=connect_str, funding_tx=funding_tx, funding_sat=funding_sat, push_sat=push_amt_sat, password=password)
    fut = asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop)
    try:
        (chan, funding_tx) = fut.result()
    except concurrent.futures.TimeoutError:
        raise Exception(_('open_channel timed out'))
    return (chan, funding_tx)