public void Validate(string address) { if (string.IsNullOrEmpty(address)) { AddError(nameof(address), "Address can not be empty!"); return; } if (!address.StartsWith("F") && !address.StartsWith("3") && !address.StartsWith("grs1")) { AddError(nameof(address), "Address must start with F or 3!"); return; } if (address.StartsWith("grs1")) { var errors = Bech32.Verify(address, NetworkType.Mainnet); if (errors.Any()) { foreach (var error in errors) { AddError(nameof(address), error); } return; } } else { try { Groestlcoin.GroestlEncoder.Instance.DecodeData(address); } catch (Exception e) { AddError(nameof(address), e.Message); } } }