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)); }
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)); }