Browse Source

CLI: use funding_point in channel_open and channel_close. add host:port to nodeid

dependabot/pip/contrib/deterministic-build/ecdsa-0.13.3
ThomasV 6 years ago
parent
commit
d383573bc3
  1. 13
      electrum/commands.py
  2. 8
      electrum/lnworker.py

13
electrum/commands.py

@ -49,6 +49,7 @@ from .address_synchronizer import TX_HEIGHT_LOCAL
from .import lightning
from .mnemonic import Mnemonic
from .lnutil import SENT, RECEIVED
from .lnbase import channel_id_from_funding_tx
if TYPE_CHECKING:
from .network import Network
@ -789,12 +790,13 @@ class Commands:
# using requested_amount because it is documented in param_descriptions
return self.lnworker.add_invoice(satoshis(requested_amount), message)
@command('wn')
@command('w')
def nodeid(self):
return bh2u(self.lnworker.node_keypair.pubkey)
listen_addr = self.config.get('lightning_listen')
return bh2u(self.lnworker.node_keypair.pubkey) + (('@' + listen_addr) if listen_addr else '')
@command('w')
def listchannels(self):
def list_channels(self):
return list(self.lnworker.list_channels())
@command('wn')
@ -833,8 +835,9 @@ class Commands:
return self.lnworker.get_history()
@command('wn')
def closechannel(self, channel_point, force=False):
chan_id = bytes(reversed(bfh(channel_point)))
def close_channel(self, channel_point, force=False):
txid, index = channel_point.split(':')
chan_id, _ = channel_id_from_funding_tx(txid, int(index))
coro = self.lnworker.force_close_channel(chan_id) if force else self.lnworker.close_channel(chan_id)
return self.network.run_from_another_thread(coro)

8
electrum/lnworker.py

@ -444,7 +444,7 @@ class LNWorker(PrintError):
coro = self._open_channel_coroutine(peer, local_amt_sat, push_amt_sat, password)
f = asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop)
chan = f.result(timeout)
return bh2u(chan.node_id)
return chan.funding_outpoint.to_str()
def pay(self, invoice, amount_sat=None):
"""
@ -798,7 +798,11 @@ class LNWorker(PrintError):
addr = addr[1:-1]
async def cb(reader, writer):
t = LNResponderTransport(self.node_keypair.privkey, reader, writer)
node_id = await t.handshake()
try:
node_id = await t.handshake()
except:
self.print_error('handshake failure from incoming connection')
return
# FIXME extract host and port from transport
peer = Peer(self, LNPeerAddr("bogus", 1337, node_id),
request_initial_sync=self.config.get("request_initial_sync", True),

Loading…
Cancel
Save