public void ElementsAddressSerializationTest() { var network = Altcoins.Liquid.Instance.Regtest; var address = "el1qqvx2mprx8re8pd7xjeg9tu8w3jllhcty05l0hlyvlsaj0rce90nk97ze47dv3sy356nuxhjlpms73ztf8lalkerz9ndvg0rva"; var bitcoinBlindedAddress = new BitcoinBlindedAddress(address, network); var seria = new JsonSerializerSettings(); Serializer.RegisterFrontConverters(seria, network); var serializer = JsonSerializer.Create(seria); using (var textWriter = new StringWriter()) { serializer.Serialize(textWriter, bitcoinBlindedAddress); Assert.Equal(address, textWriter.ToString().Trim('"')); using (var textReader = new JsonTextReader(new StringReader(textWriter.ToString()))) { Assert.Equal(bitcoinBlindedAddress, serializer.Deserialize <BitcoinAddress>(textReader)); Assert.Equal(bitcoinBlindedAddress, serializer.Deserialize <BitcoinBlindedAddress>(textReader)); Assert.Throws <JsonObjectException>(() => { Assert.Equal(bitcoinBlindedAddress, serializer.Deserialize <IDestination>(textReader)); }); Assert.Throws <JsonObjectException>(() => { Assert.Equal(bitcoinBlindedAddress, serializer.Deserialize <IBitcoinString>(textReader)); }); } } }
public void ElementsAddressTests() { var network = Altcoins.Liquid.Instance.Mainnet; //p2sh-segwit blidned addresses mainnet var key = Key.Parse("L22adb3BwuUxLoE8jDhNS7y9e92AYaHpXH5HSXZtFUKdJddEuFgm", network); var blindingKey = new Key(Encoders.Hex.DecodeData("bb1cbb24decbf8510c0db6ced89a0fca20382ef0aba1fcffc0f70b4310320892")); var pubBlindingKey = new PubKey("0287bad01b847963609da945cd5a08a1937649f7adbfdba5dc7e9ff46a44e54bed"); Assert.Equal(blindingKey.PubKey, pubBlindingKey); var p2sh = key.PubKey.GetAddress(ScriptPubKeyType.SegwitP2SH, network); Assert.Equal("GtqMkbR82hDis4EPKAaBNSKHY2ZR3ue4Ef", p2sh.ToString()); var blinded = new BitcoinBlindedAddress("VJL9DzChzwuw7Amnb1SL7M5WEq4TXmzZeAWzNFM5ULcr84gUEpu46Hbs1hZoYJXVkaqM5E3YxAyHy18N", network); Assert.Equal(blinded.ToString(), new BitcoinBlindedAddress(pubBlindingKey, p2sh).ToString()); //legacy blinded addresses mainnet key = Key.Parse("L2EApGmxCemfhVHRmgXa1TWRoEaoiKfJHfvfmcPpRzF2v6neHqZv", network); var legacy = key.PubKey.GetAddress(ScriptPubKeyType.Legacy, network); Assert.Equal("QCAGkwismL6CZ8LR1Bvbzx1z3S7dfNsPwv", legacy.ToString()); blinded = new BitcoinBlindedAddress("VTpxFwLujc7Z8ufVaVxz1JJq7wVcmq6dxc4dDVBa9jK1zyHfuTUXQpZAhG4JJjv2DYGTKRW5r39RuHXF", network); Assert.Equal(blinded.ToString(), new BitcoinBlindedAddress(new PubKey("029c293fbb855b709d7af1b696f26b16de06de6746616ebee32aee07be9aadc5f0"), legacy).ToString()); //segwit blinded addresses mainnet key = Key.Parse("KxYLpF8yCrphfji3AFzDFurjFfZum9wFhqzpQVeGAFRi4Gtewu6z", network); var segwit = key.PubKey.GetAddress(ScriptPubKeyType.Segwit, network); Assert.Equal("ex1qrqm9fah7lu9vf6t8v8tsjg0ul9gdtd89gwqcfz", segwit.ToString()); blinded = new BitcoinBlindedAddress("lq1qqds20c9qasz0y9fup3wc8xca6ceeyf7e4w6wd9l4qd4vwh887l76gxpk2nm0alc2cn5kwcwhpysle72s6k6w2uhhtgwsltf66", network); var computed = new BitcoinBlindedAddress( new PubKey("0360a7e0a0ec04f2153c0c5d839b1dd6339227d9abb4e697f5036ac75ce7f7fda4"), segwit); Assert.Equal(blinded.ToString(), computed.ToString()); }