public void SetToP2SH_P2WSHTest() { RedeemScript scr = new RedeemScript(); MockSerializableScript mockScr = new MockSerializableScript(new byte[] { 1, 2, 3 }, 255); scr.SetToP2SH_P2WSH(mockScr); byte[] expected = Helper.HexToBytes("0020039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81"); Assert.Equal(expected, scr.Data); }
/// <summary> /// Return the pay to witness script hash wrapped in a pay to script hash address from the given <see cref="IScript"/>. /// </summary> /// <exception cref="ArgumentException"/> /// <exception cref="ArgumentNullException"/> /// <param name="script">Public key to use</param> /// <param name="witVer">Witness version to use</param> /// <param name="netType">[Default value = <see cref="NetworkType.MainNet"/>] Network type</param> /// <returns>The resulting address</returns> public string GetP2sh_P2wsh(IScript script, byte witVer, NetworkType netType = NetworkType.MainNet) { if (script is null) { throw new ArgumentNullException(nameof(script), "Script can not be null."); } if (witVer != 0) { throw new ArgumentException("Currently only address version 0 is defined for P2WSH-P2SH.", nameof(witVer)); } if (netType != NetworkType.MainNet && netType != NetworkType.TestNet && netType != NetworkType.RegTest) { throw new ArgumentException(Err.InvalidNetwork); } RedeemScript rdm = new RedeemScript(); rdm.SetToP2SH_P2WSH(script); return(GetP2sh(rdm, netType)); }
public void SetToP2SH_P2WSH_ExceptionTest() { RedeemScript scr = new RedeemScript(); Assert.Throws <ArgumentNullException>(() => scr.SetToP2SH_P2WSH(null)); }