Files
BTCPayServerPlugins/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/AffiliationByteArrayJsonConverter.cs
2023-02-09 15:43:55 +01:00

25 lines
732 B
C#

using System;
using NBitcoin.DataEncoders;
using Newtonsoft.Json;
using WalletWasabi.Helpers;
namespace WalletWasabi.Affiliation.Serialization;
public class AffiliationByteArrayJsonConverter : JsonConverter<byte[]>
{
public override byte[]? ReadJson(JsonReader reader, Type objectType, byte[]? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.Value is string serialized)
{
return Convert.FromHexString(serialized);
}
throw new JsonSerializationException("Cannot deserialize object.");
}
public override void WriteJson(JsonWriter writer, byte[]? value, JsonSerializer serializer)
{
Guard.NotNull(nameof(value), value);
writer.WriteValue(Convert.ToHexString(value).ToLower());
}
}