From 8187bfdf0eec88443319db1b7644e8f1a73d3f6a Mon Sep 17 00:00:00 2001 From: rkfg Date: Tue, 6 Sep 2022 18:09:46 +0300 Subject: [PATCH 1/4] Add pretty amount formatting --- ui/views/channel.go | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/ui/views/channel.go b/ui/views/channel.go index b1da113..7faf56d 100644 --- a/ui/views/channel.go +++ b/ui/views/channel.go @@ -141,6 +141,26 @@ func printPolicy(v *gocui.View, p *message.Printer, policy *netModels.RoutingPol cyan(" Fee rate milli msat:"), policy.FeeRateMilliMsat) } +func formatAmount(amt int64) string { + btc := amt / 1e8 + ms := amt % 1e8 / 1e6 + ts := amt % 1e6 / 1e3 + s := amt % 1e3 + if btc > 0 { + return fmt.Sprintf("%d.%02d,%03d,%03d", btc, ms, ts, s) + } + if ms > 0 { + return fmt.Sprintf("%d,%03d,%03d", ms, ts, s) + } + if ts > 0 { + return fmt.Sprintf("%d,%03d", ts, s) + } + if s >= 0 { + return fmt.Sprintf("%d", s) + } + return fmt.Sprintf("error: %d", amt) +} + func (c *Channel) display() { p := message.NewPrinter(language.English) v := c.view @@ -153,12 +173,12 @@ func (c *Channel) display() { cyan(" Status:"), status(channel)) fmt.Fprintf(v, "%s %d (%s)\n", cyan(" ID:"), channel.ID, ToScid(channel.ID)) - fmt.Fprintf(v, "%s %d\n", - cyan(" Capacity:"), channel.Capacity) - fmt.Fprintf(v, "%s %d\n", - cyan(" Local Balance:"), channel.LocalBalance) - fmt.Fprintf(v, "%s %d\n", - cyan(" Remote Balance:"), channel.RemoteBalance) + fmt.Fprintf(v, "%s %s\n", + cyan(" Capacity:"), formatAmount(channel.Capacity)) + fmt.Fprintf(v, "%s %s\n", + cyan(" Local Balance:"), formatAmount(channel.LocalBalance)) + fmt.Fprintf(v, "%s %s\n", + cyan(" Remote Balance:"), formatAmount(channel.RemoteBalance)) fmt.Fprintf(v, "%s %s\n", cyan(" Channel Point:"), channel.ChannelPoint) fmt.Fprintln(v, "") @@ -173,8 +193,8 @@ func (c *Channel) display() { } fmt.Fprintf(v, "%s %s\n", cyan(" Alias:"), alias) - fmt.Fprintf(v, "%s %d\n", - cyan(" Total Capacity:"), channel.Node.TotalCapacity) + fmt.Fprintf(v, "%s %s\n", + cyan(" Total Capacity:"), formatAmount(channel.Node.TotalCapacity)) fmt.Fprintf(v, "%s %d\n", cyan(" Total Channels:"), channel.Node.NumChannels) } @@ -196,8 +216,8 @@ func (c *Channel) display() { for _, htlc := range channel.PendingHTLC { fmt.Fprintf(v, "%s %t\n", cyan(" Incoming:"), htlc.Incoming) - fmt.Fprintf(v, "%s %d\n", - cyan(" Amount:"), htlc.Amount) + fmt.Fprintf(v, "%s %s\n", + cyan(" Amount:"), formatAmount(htlc.Amount)) fmt.Fprintf(v, "%s %d\n", cyan(" Expiration:"), htlc.ExpirationHeight) fmt.Fprintln(v) From d804c9eab1bc3a07900739babe5a04fbeabce14f Mon Sep 17 00:00:00 2001 From: rkfg Date: Wed, 7 Sep 2022 14:48:08 +0300 Subject: [PATCH 2/4] Format wallet and total channel balances --- ui/views/summary.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/views/summary.go b/ui/views/summary.go index a4b7a36..11ae96a 100644 --- a/ui/views/summary.go +++ b/ui/views/summary.go @@ -58,11 +58,11 @@ func (s *Summary) display() { cyan := color.Cyan() red := color.Red() fmt.Fprintln(s.left, green("[ Channels ]")) - fmt.Fprintln(s.left, p.Sprintf("%s %d (%s|%s)", + fmt.Fprintln(s.left, p.Sprintf("%s %s (%s|%s)", cyan("balance:"), - s.channelsBalance.Balance+s.channelsBalance.PendingOpenBalance, - green(p.Sprintf("%d", s.channelsBalance.Balance)), - yellow(p.Sprintf("%d", s.channelsBalance.PendingOpenBalance)), + formatAmount(s.channelsBalance.Balance+s.channelsBalance.PendingOpenBalance), + green(p.Sprintf("%s", formatAmount(s.channelsBalance.Balance))), + yellow(p.Sprintf("%s", formatAmount(s.channelsBalance.PendingOpenBalance))), )) fmt.Fprintln(s.left, fmt.Sprintf("%s %d %s %d %s %d %s", cyan("state :"), @@ -77,11 +77,11 @@ func (s *Summary) display() { s.right.Clear() fmt.Fprintln(s.right, green("[ Wallet ]")) - fmt.Fprintln(s.right, p.Sprintf("%s %d (%s|%s)", + fmt.Fprintln(s.right, p.Sprintf("%s %s (%s|%s)", cyan("balance:"), - s.walletBalance.TotalBalance, - green(p.Sprintf("%d", s.walletBalance.ConfirmedBalance)), - yellow(p.Sprintf("%d", s.walletBalance.UnconfirmedBalance)), + formatAmount(s.walletBalance.TotalBalance), + green(p.Sprintf("%s", formatAmount(s.walletBalance.ConfirmedBalance))), + yellow(p.Sprintf("%s", formatAmount(s.walletBalance.UnconfirmedBalance))), )) } From c7ee21824ac2d44d30302401398830d260105133 Mon Sep 17 00:00:00 2001 From: rkfg Date: Sun, 11 Sep 2022 19:44:54 +0300 Subject: [PATCH 3/4] Show max htlc --- network/backend/lnd/proto.go | 1 + network/models/channel.go | 1 + ui/views/channel.go | 6 ++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/network/backend/lnd/proto.go b/network/backend/lnd/proto.go index 2e6e935..320440b 100644 --- a/network/backend/lnd/proto.go +++ b/network/backend/lnd/proto.go @@ -286,6 +286,7 @@ func protoToRoutingPolicy(resp *lnrpc.RoutingPolicy) *models.RoutingPolicy { return &models.RoutingPolicy{ TimeLockDelta: resp.TimeLockDelta, MinHtlc: resp.MinHtlc, + MaxHtlc: resp.MaxHtlcMsat, FeeBaseMsat: resp.FeeBaseMsat, FeeRateMilliMsat: resp.FeeRateMilliMsat, Disabled: resp.Disabled, diff --git a/network/models/channel.go b/network/models/channel.go index e98f8f0..09b34f9 100644 --- a/network/models/channel.go +++ b/network/models/channel.go @@ -92,6 +92,7 @@ type ChannelUpdate struct { type RoutingPolicy struct { TimeLockDelta uint32 MinHtlc int64 + MaxHtlc uint64 FeeBaseMsat int64 FeeRateMilliMsat int64 Disabled bool diff --git a/ui/views/channel.go b/ui/views/channel.go index 7faf56d..dd9a34a 100644 --- a/ui/views/channel.go +++ b/ui/views/channel.go @@ -133,8 +133,10 @@ func printPolicy(v *gocui.View, p *message.Printer, policy *netModels.RoutingPol } fmt.Fprintf(v, "%s %d\n", cyan(" Time lock delta:"), policy.TimeLockDelta) - fmt.Fprintf(v, "%s %d\n", - cyan(" Min htlc:"), policy.MinHtlc) + fmt.Fprintf(v, "%s %s\n", + cyan(" Min htlc (msat):"), formatAmount(policy.MinHtlc)) + fmt.Fprintf(v, "%s %s\n", + cyan(" Max htlc (sat):"), formatAmount(int64(policy.MaxHtlc/1000))) fmt.Fprintf(v, "%s %d\n", cyan(" Fee base msat:"), policy.FeeBaseMsat) fmt.Fprintf(v, "%s %d\n", From ee26c191412f42134e3e28880203656573cc1cda Mon Sep 17 00:00:00 2001 From: rkfg Date: Mon, 12 Sep 2022 00:12:02 +0300 Subject: [PATCH 4/4] Format base fee --- ui/views/channel.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/views/channel.go b/ui/views/channel.go index dd9a34a..f95302e 100644 --- a/ui/views/channel.go +++ b/ui/views/channel.go @@ -137,8 +137,8 @@ func printPolicy(v *gocui.View, p *message.Printer, policy *netModels.RoutingPol cyan(" Min htlc (msat):"), formatAmount(policy.MinHtlc)) fmt.Fprintf(v, "%s %s\n", cyan(" Max htlc (sat):"), formatAmount(int64(policy.MaxHtlc/1000))) - fmt.Fprintf(v, "%s %d\n", - cyan(" Fee base msat:"), policy.FeeBaseMsat) + fmt.Fprintf(v, "%s %s\n", + cyan(" Fee base msat:"), formatAmount(policy.FeeBaseMsat)) fmt.Fprintf(v, "%s %d\n", cyan(" Fee rate milli msat:"), policy.FeeRateMilliMsat) }