Fix crash when sat is negative (liquid only) (#2418)

This commit is contained in:
Andrew Camilleri 2021-04-05 05:39:37 +02:00 committed by GitHub
parent f94e8c9719
commit 3e985d8554
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -33,10 +33,12 @@ namespace BTCPayServer
public static decimal Convert(long sats, int divisibility = 8)
{
var amt = sats.ToString(CultureInfo.InvariantCulture).PadLeft(divisibility, '0');
var negative = sats < 0;
var amt = sats.ToString(CultureInfo.InvariantCulture)
.Replace("-", "")
.PadLeft(divisibility, '0');
amt = amt.Length == divisibility ? $"0.{amt}" : amt.Insert(amt.Length - divisibility, ".");
return decimal.Parse(amt, CultureInfo.InvariantCulture);
return decimal.Parse($"{(negative? "-": string.Empty)}{amt}", CultureInfo.InvariantCulture);
}
public static string ShowMoney(this IMoney money, BTCPayNetwork network)
{