btcpayserver/BTCPayServer/Validations/ExtPubKeyValidator.cs
NicolasDorier b5c6ed3860 Init
2017-09-13 15:55:16 +09:00

31 lines
753 B
C#

using NBitcoin;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace BTCPayServer.Validations
{
public class ExtPubKeyValidatorAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if(value == null)
{
return ValidationResult.Success;
}
var network = (Network)validationContext.GetService(typeof(Network));
if(network == null)
return new ValidationResult("No Network specified");
try
{
new BitcoinExtPubKey((string)value, network);
return ValidationResult.Success;
}
catch(Exception ex)
{
return new ValidationResult(ex.Message);
}
}
}
}