public JObject ValidateAddress(string address) { if (string.IsNullOrEmpty(address)) { throw new ArgumentNullException("address"); } var res = new JObject(); res["isvalid"] = false; // P2PKH if (BitcoinPubKeyAddress.IsValid(address, ref this.Network)) { res["isvalid"] = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, ref this.Network)) { res["isvalid"] = true; } // P2WPKH else if (BitcoinWitPubKeyAddress.IsValid(address, ref this.Network)) { res ["isvalid"] = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, ref this.Network)) { res ["isvalid"] = true; } return(res); }
public ValidatedAddress ValidateAddress(string address) { if (string.IsNullOrEmpty(address)) { throw new ArgumentNullException("address"); } var res = new ValidatedAddress(); res.IsValid = false; // P2WPKH if (BitcoinWitPubKeyAddress.IsValid(address, this.Network, out Exception _)) { res.IsValid = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, this.Network, out Exception _)) { res.IsValid = true; } // P2PKH else if (BitcoinPubKeyAddress.IsValid(address, this.Network)) { res.IsValid = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, this.Network)) { res.IsValid = true; } return(res); }
public IActionResult ValidateAddress([FromQuery] string address) { Guard.NotEmpty(address, nameof(address)); var result = new ValidatedAddress { IsValid = false, Address = address, }; try { // P2WPKH if (BitcoinWitPubKeyAddress.IsValid(address, this.network, out Exception _)) { result.IsValid = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, this.network, out Exception _)) { result.IsValid = true; } // P2PKH else if (BitcoinPubKeyAddress.IsValid(address, this.network)) { result.IsValid = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, this.network)) { result.IsValid = true; result.IsScript = true; } } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } if (result.IsValid) { var scriptPubKey = BitcoinAddress.Create(address, this.network).ScriptPubKey; result.ScriptPubKey = scriptPubKey.ToHex(); result.IsWitness = scriptPubKey.IsWitness(this.network); } return(this.Json(result)); }
public ValidatedAddress ValidateAddress([FromQuery] string address) { Guard.NotEmpty(address, nameof(address)); var result = new ValidatedAddress { IsValid = false, Address = address, }; try { // P2WPKH if (BitcoinWitPubKeyAddress.IsValid(address, this.network, out Exception _)) { result.IsValid = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, this.network, out Exception _)) { result.IsValid = true; } // P2PKH else if (BitcoinPubKeyAddress.IsValid(address, this.network)) { result.IsValid = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, this.network)) { result.IsValid = true; result.IsScript = true; } } catch (Exception e) { this.logger.LogDebug("Exception occurred: {0}", e.ToString()); result.IsValid = false; return(result); } if (result.IsValid) { var scriptPubKey = BitcoinAddress.Create(address, this.network).ScriptPubKey; result.ScriptPubKey = scriptPubKey.ToHex(); result.IsWitness = scriptPubKey.IsWitness(this.network); } return(result); }
public ValidatedAddress ValidateAddress(string address) { Guard.NotEmpty(address, nameof(address)); var result = new ValidatedAddress { IsValid = false, Address = address, }; try { // P2WPKH if (BitcoinWitPubKeyAddress.IsValid(address, this.Network, out Exception _)) { result.IsValid = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, this.Network, out Exception _)) { result.IsValid = true; } // P2PKH else if (BitcoinPubKeyAddress.IsValid(address, this.Network)) { result.IsValid = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, this.Network)) { result.IsValid = true; result.IsScript = true; } } catch (NotImplementedException) { result.IsValid = false; } if (result.IsValid) { var scriptPubKey = BitcoinAddress.Create(address, this.Network).ScriptPubKey; result.ScriptPubKey = scriptPubKey.ToHex(); result.IsWitness = scriptPubKey.IsWitness(this.Network); } return(result); }
public bool ImportAddress(string address, string label, bool rescan = true, bool p2Sh = false) { Guard.NotEmpty(nameof(address), address); var isP2Pkh = !p2Sh && BitcoinPubKeyAddress.IsValid(address, Network); var isP2Sh = p2Sh && BitcoinScriptAddress.IsValid(address, Network); Guard.Assert(isP2Pkh || isP2Sh); this.watchOnlyWalletManager.WatchAddress(address); if (rescan) { this.RescanBlockChain(null, null); } return(true); }
public IActionResult ValidateAddress([FromQuery] string address) { try { Guard.NotEmpty(address, nameof(address)); var res = new ValidatedAddress { IsValid = false }; // P2WPKH if (BitcoinWitPubKeyAddress.IsValid(address, this.network, out _)) { res.IsValid = true; } // P2WSH else if (BitcoinWitScriptAddress.IsValid(address, this.network, out _)) { res.IsValid = true; } // P2PKH else if (BitcoinPubKeyAddress.IsValid(address, this.network)) { res.IsValid = true; } // P2SH else if (BitcoinScriptAddress.IsValid(address, this.network)) { res.IsValid = true; } return(Json(res)); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }