@log_exceptions
async def _open_channel_coroutine(self, *, connect_str: str, funding_tx: PartialTransaction, funding_sat: int, push_sat: int, password: Optional[str]) -> Tuple[(Channel, PartialTransaction)]:
    peer = (await self.add_peer(connect_str))
    coro = peer.channel_establishment_flow(funding_tx=funding_tx, funding_sat=funding_sat, push_msat=(push_sat * 1000), temp_channel_id=os.urandom(32))
    (chan, funding_tx) = (await asyncio.wait_for(coro, LN_P2P_NETWORK_TIMEOUT))
    util.trigger_callback('channels_updated', self.wallet)
    self.wallet.add_transaction(funding_tx)
    self.wallet.sign_transaction(funding_tx, password)
    self.wallet.set_label(funding_tx.txid(), _('Open channel'))
    if funding_tx.is_complete():
        (await self.network.try_broadcasting(funding_tx, 'open_channel'))
    return (chan, funding_tx)
@log_exceptions
async def _open_channel_coroutine(self, *, connect_str: str, funding_tx: PartialTransaction, funding_sat: int, push_sat: int, password: Optional[str]) -> Tuple[(Channel, PartialTransaction)]:
    peer = (await self.add_peer(connect_str))
    coro = peer.channel_establishment_flow(funding_tx=funding_tx, funding_sat=funding_sat, push_msat=(push_sat * 1000), temp_channel_id=os.urandom(32))
    (chan, funding_tx) = (await asyncio.wait_for(coro, LN_P2P_NETWORK_TIMEOUT))
    util.trigger_callback('channels_updated', self.wallet)
    self.wallet.add_transaction(funding_tx)
    self.wallet.sign_transaction(funding_tx, password)
    self.wallet.set_label(funding_tx.txid(), _('Open channel'))
    if funding_tx.is_complete():
        (await self.network.try_broadcasting(funding_tx, 'open_channel'))
    return (chan, funding_tx)