From 4947fa4d45a169396424b48870843e1572a5d087 Mon Sep 17 00:00:00 2001 From: Kukks Date: Fri, 29 May 2020 10:15:01 +0200 Subject: [PATCH] Add also money json converter --- .../JsonConverters/MoneyJsonConverter.cs | 25 +++++++++++++++++++ .../Models/OpenLightningChannelRequest.cs | 1 + .../v1/swagger.template.lightning.common.json | 7 +++--- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 BTCPayServer.Client/JsonConverters/MoneyJsonConverter.cs diff --git a/BTCPayServer.Client/JsonConverters/MoneyJsonConverter.cs b/BTCPayServer.Client/JsonConverters/MoneyJsonConverter.cs new file mode 100644 index 000000000..865a99c0d --- /dev/null +++ b/BTCPayServer.Client/JsonConverters/MoneyJsonConverter.cs @@ -0,0 +1,25 @@ +using System; +using System.Globalization; +using NBitcoin; +using Newtonsoft.Json; + +namespace BTCPayServer.Client.JsonConverters +{ + public class MoneyJsonConverter : NBitcoin.JsonConverters.MoneyJsonConverter + { + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + if (reader.TokenType == JsonToken.String) + { + return new Money( long.Parse((string) reader.Value)); + } + return base.ReadJson(reader, objectType, existingValue, serializer); + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + if (value != null) + writer.WriteValue(((Money)value).Satoshi.ToString(CultureInfo.InvariantCulture)); + } + } +} diff --git a/BTCPayServer.Client/Models/OpenLightningChannelRequest.cs b/BTCPayServer.Client/Models/OpenLightningChannelRequest.cs index 192c14fd9..1ee015475 100644 --- a/BTCPayServer.Client/Models/OpenLightningChannelRequest.cs +++ b/BTCPayServer.Client/Models/OpenLightningChannelRequest.cs @@ -1,6 +1,7 @@ using NBitcoin; using NBitcoin.JsonConverters; using Newtonsoft.Json; +using MoneyJsonConverter = BTCPayServer.Client.JsonConverters.MoneyJsonConverter; namespace BTCPayServer.Client.Models { diff --git a/BTCPayServer/wwwroot/swagger/v1/swagger.template.lightning.common.json b/BTCPayServer/wwwroot/swagger/v1/swagger.template.lightning.common.json index 1a86f2222..80cadab7a 100644 --- a/BTCPayServer/wwwroot/swagger/v1/swagger.template.lightning.common.json +++ b/BTCPayServer/wwwroot/swagger/v1/swagger.template.lightning.common.json @@ -61,7 +61,7 @@ "LightMoney": { "type": "string", "format": "int64", - "description": "The id of the store", + "description": "a number amount wrapped in a string, represented in millistatoshi (00000000001BTC = 1 mSAT)", "additionalProperties": false }, "LightningChannelData": { @@ -214,8 +214,9 @@ } }, "Money": { - "type": "integer", - "format": "int64" + "type": "string", + "format": "int64", + "description": "a number amount wrapped in a string, represented in satoshi (00000001BTC = 1 sat)" }, "FeeRate": { "oneOf": [