-
Notifications
You must be signed in to change notification settings - Fork 0
/
pendinghtlc.py
40 lines (39 loc) · 1.45 KB
/
pendinghtlc.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
from prettytable import PrettyTable
from pyln.client import LightningRpc
import math
l1 = LightningRpc("/home/lightning/.lightning/bitcoin/lightning-rpc")
t = PrettyTable(['Alias', 'SCID', 'In htlcs', 'Out htlcs', 'Soonest expiry blocks', 'Soonest expiry hours', 'Connected'])
blockheight = (l1.getinfo()['blockheight'])
peers = l1.listpeers()
sumin = 0
sumout = 0
for peer in peers['peers']:
conn = "False"
if peer['connected'] == True:
conn = "True"
for channel in peer['channels']:
outhtlc = 0
inhtlc = 0
htlcexpire = 9999999
for htlc in channel['htlcs']:
if htlc['direction'] == "out":
outhtlc += 1
if htlc['expiry'] < htlcexpire:
htlcexpire = htlc['expiry']
elif htlc['direction'] == "in":
inhtlc += 1
if htlc['expiry'] < htlcexpire:
htlcexpire = htlc['expiry']
if ( inhtlc != 0 or outhtlc != 0):
nodes = l1.listnodes(peer['id'])
for node in nodes['nodes']:
alias = node['alias']
exp = htlcexpire - blockheight
exptime = round(exp * 10 / 60, 1)
if exp > 0:
sumin += inhtlc
sumout += outhtlc
t.add_row([alias, channel['short_channel_id'], inhtlc, outhtlc, exp, exptime, conn])
t.add_row(["Total", "-", sumin, sumout, "-", "-", "-"])
print(t)