Esempio n. 1
0
        public void ParseWifStringTest()
        {
            // Compressed: "1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD";
            var expectedBytes = HexUtilities.HexStringToBytes("801E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD01");
            var input         = "KxFC1jmwwCoACiCAWZ3eXa96mBM6tb3TYzGmf6YwgdGWZgawvrtJ";
            var prvKey        = PrivateKey.CreateFromWifString(input);
            var wifBytes      = prvKey.GetWifBytes();

            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expectedBytes, wifBytes));
            var wifString = prvKey.GetWifString();

            Assert.AreEqual(input, wifString);
            Assert.IsTrue(prvKey.WifCompressed);
            Assert.IsFalse(prvKey.TestNet);

            // Compressed (TestNet): "1cca23de92fd1862fb5b76e5f4f50eb082165e5191e116c18ed1a6b24be6a53f";
            expectedBytes = HexUtilities.HexStringToBytes("ef1cca23de92fd1862fb5b76e5f4f50eb082165e5191e116c18ed1a6b24be6a53f01");
            input         = "cNYfWuhDpbNM1JWc3c6JTrtrFVxU4AGhUKgw5f93NP2QaBqmxKkg";
            prvKey        = PrivateKey.CreateFromWifString(input);
            wifBytes      = prvKey.GetWifBytes();
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expectedBytes, wifBytes));
            wifString = prvKey.GetWifString();
            Assert.AreEqual(input, wifString);
            Assert.IsTrue(prvKey.WifCompressed);
            Assert.IsTrue(prvKey.TestNet);

            // Uncompressed: "1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD";
            expectedBytes = HexUtilities.HexStringToBytes("801E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD");
            input         = "5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn";
            prvKey        = PrivateKey.CreateFromWifString(input);
            wifBytes      = prvKey.GetWifBytes();
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expectedBytes, wifBytes));
            wifString = prvKey.GetWifString();
            Assert.AreEqual(input, wifString);
            Assert.IsFalse(prvKey.WifCompressed);
            Assert.IsFalse(prvKey.TestNet);

            // Uncompressed: "0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D";
            input         = "5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ";
            expectedBytes = HexUtilities.HexStringToBytes("800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D");
            prvKey        = PrivateKey.CreateFromWifString(input);
            wifBytes      = prvKey.GetWifBytes();
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expectedBytes, wifBytes));
            wifString = prvKey.GetWifString();
            Assert.AreEqual(input, wifString);
            Assert.IsFalse(prvKey.WifCompressed);
            Assert.IsFalse(prvKey.TestNet);

            // Uncompressed (TestNet): "93XfLeifX7Jx7n7ELGMAf1SUR6f9kgQs8Xke8WStMwUtrDucMzn";
            input  = "93XfLeifX7Jx7n7ELGMAf1SUR6f9kgQs8Xke8WStMwUtrDucMzn";
            prvKey = PrivateKey.CreateFromWifString(input);
            Assert.AreEqual((BigInteger.Pow(2, 256) - BigInteger.Pow(2, 201)), prvKey.Value);
            wifString = prvKey.GetWifString();
            Assert.AreEqual(input, wifString);
            Assert.IsFalse(prvKey.WifCompressed);
            Assert.IsTrue(prvKey.TestNet);
        }
        public void DecodeBase58CheckVersion5Test()
        {
            // Version 5 (0x05) Prefixes (Pay-to-Script-Hash Addresses)

            var data     = "3CMCRgEm8HVz3DrWaCCid3vAANE42jcEv9";
            var expected = HexUtilities.HexStringToBytes("0574E9D4CDE54B8A6DECDD997541E44508FF8BA5E8");
            var actual   = Base58Utilities.DecodeBase58Check(data);

            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));
        }
        public void DecodeBase58CheckVersion0Test()
        {
            // Version 0 (0x00) Prefixes (Bitcoin Addresses)

            var data     = "16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM";
            var expected = HexUtilities.HexStringToBytes("00010966776006953D5567439E5E39F86A0D273BEE");
            var actual   = Base58Utilities.DecodeBase58Check(data);

            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));

            data     = "1NqmBmniPt6viRizQjbjWzA6zc3M3Fvdqt";
            expected = HexUtilities.HexStringToBytes("00EF937DF494BC737F158D6593856DFEBD80988BED");
            actual   = Base58Utilities.DecodeBase58Check(data);
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));
        }
        public void DecodeBase58CheckNonStandardTest()
        {
            // Version 0 (0x00) Prefixes, non-standard lengths

            var data     = "173RKgkk7fMbYUYBGyyAHeZ6rwfKRMn17h7DtGsmpEdab8TV6UB";
            var expected = HexUtilities.HexStringToBytes("00031bab84e687e36514eeaf5a017c30d32c1f59dd4ea6629da7970ca374513dd006");
            var actual   = Base58Utilities.DecodeBase58Check(data);

            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));

            data     = "12ANjYr7zPnxRdZfnmC2e6jjHDpBY";
            expected = HexUtilities.HexStringToBytes("005361746f736869204e616b616d6f746f");
            actual   = Base58Utilities.DecodeBase58Check(data);
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));

            // Version 42 (0x2A) Prefix, non standard data

            data     = "7DTXS6pY6a98XH2oQTZUbbd1Z7P4NzkJqfraixprPutXQVTkwBGw";
            expected = HexUtilities.HexStringToBytes("2a031bab84e687e36514eeaf5a017c30d32c1f59dd4ea6629da7970ca374513dd006");
            actual   = Base58Utilities.DecodeBase58Check(data);
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, actual));
        }
Esempio n. 5
0
        public void HexStringToBytesTest()
        {
            string hexLower = "0180ff";
            var    expected = new byte[] { 0x01, 0x80, 0xFF };
            var    bytes    = HexUtilities.HexStringToBytes(hexLower);

            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, bytes));

            string hexUpper = "0180FF";

            bytes = HexUtilities.HexStringToBytes(hexUpper);
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, bytes));

            string hexEmpty = string.Empty;

            bytes = HexUtilities.HexStringToBytes(hexEmpty);
            Assert.IsTrue(bytes.Length == 0);

            string hexZero = "0000";

            expected = new byte[] { 0x00, 0x00 };
            bytes    = HexUtilities.HexStringToBytes(hexZero);
            Assert.IsTrue(ByteArrayUtilities.CompareByteArrays(expected, bytes));
        }