Exemple #1
0
        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));
                    });
                }
            }
        }
Exemple #2
0
        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());
        }