Add pretty amount formatting

pull/80/head
rkfg 2 years ago
parent 449811ab43
commit 8187bfdf0e

@ -141,6 +141,26 @@ func printPolicy(v *gocui.View, p *message.Printer, policy *netModels.RoutingPol
cyan(" Fee rate milli msat:"), policy.FeeRateMilliMsat) 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() { func (c *Channel) display() {
p := message.NewPrinter(language.English) p := message.NewPrinter(language.English)
v := c.view v := c.view
@ -153,12 +173,12 @@ func (c *Channel) display() {
cyan(" Status:"), status(channel)) cyan(" Status:"), status(channel))
fmt.Fprintf(v, "%s %d (%s)\n", fmt.Fprintf(v, "%s %d (%s)\n",
cyan(" ID:"), channel.ID, ToScid(channel.ID)) cyan(" ID:"), channel.ID, ToScid(channel.ID))
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Capacity:"), channel.Capacity) cyan(" Capacity:"), formatAmount(channel.Capacity))
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Local Balance:"), channel.LocalBalance) cyan(" Local Balance:"), formatAmount(channel.LocalBalance))
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Remote Balance:"), channel.RemoteBalance) cyan(" Remote Balance:"), formatAmount(channel.RemoteBalance))
fmt.Fprintf(v, "%s %s\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Channel Point:"), channel.ChannelPoint) cyan(" Channel Point:"), channel.ChannelPoint)
fmt.Fprintln(v, "") fmt.Fprintln(v, "")
@ -173,8 +193,8 @@ func (c *Channel) display() {
} }
fmt.Fprintf(v, "%s %s\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Alias:"), alias) cyan(" Alias:"), alias)
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Total Capacity:"), channel.Node.TotalCapacity) cyan(" Total Capacity:"), formatAmount(channel.Node.TotalCapacity))
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %d\n",
cyan(" Total Channels:"), channel.Node.NumChannels) cyan(" Total Channels:"), channel.Node.NumChannels)
} }
@ -196,8 +216,8 @@ func (c *Channel) display() {
for _, htlc := range channel.PendingHTLC { for _, htlc := range channel.PendingHTLC {
fmt.Fprintf(v, "%s %t\n", fmt.Fprintf(v, "%s %t\n",
cyan(" Incoming:"), htlc.Incoming) cyan(" Incoming:"), htlc.Incoming)
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %s\n",
cyan(" Amount:"), htlc.Amount) cyan(" Amount:"), formatAmount(htlc.Amount))
fmt.Fprintf(v, "%s %d\n", fmt.Fprintf(v, "%s %d\n",
cyan(" Expiration:"), htlc.ExpirationHeight) cyan(" Expiration:"), htlc.ExpirationHeight)
fmt.Fprintln(v) fmt.Fprintln(v)

Loading…
Cancel
Save