btcpayserver/BTCPayServer/Validations/ExtPubKeyValidator.cs

32 lines
753 B
C#
Raw Normal View History

2017-09-13 15:47:34 +09:00
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);
}
}
}
}