Example #1
0
        public static byte[] FromHex(this string str)
        {
            if (string.IsNullOrWhiteSpace(str))
            {
                return(new byte[0]);
            }

            return(HEX.Decode(Encoding.UTF8.GetBytes(str)));
        }
Example #2
0
            public void WhenDelimiterSet_ThenReturnDecoded(string hex, string expected)
            {
                var sut = new HexEncoder('=');

                var result = sut.Decode(hex);

                Assert.That(result, Is.EqualTo(expected));
            }
Example #3
0
        public void Base58TestCases(bool ok, string hex, string base58)
        {
            var hexValue = Hex.Decode(hex);
            var result   = Base58.TryDecode(base58, out var bytes);

            Assert.Equal(result, ok);
            Assert.Equal(hexValue, bytes);
            Assert.Equal(base58, Base58.Encode(bytes));
        }
Example #4
0
 public void Encoding()
 {
     foreach (var tv in _testValues1)
     {
         var bytes = HexEncoder.Decode(tv.Hex);
         var s     = new Script(tv.Hex);
         var ops   = s.Decode().ToArray();
         var d     = s.ToVerboseString();
         Assert.Equal(tv.Decode, d);
     }
 }
Example #5
0
 public int DecodeToBuffer() => HexEncoder.Decode(text, byteBuffer);
Example #6
0
 public byte[] Decode() => HexEncoder.Decode(text);
        public void Example()
        {
            var tree = new MerkleTree();

            tree.AddLeave(new[] {
                HexEncoder.Decode("e1566f09e0deea437826514431be6e4bdb4fe10aa54d75aecf0b4cdc1bc4320c"),
                HexEncoder.Decode("2f7f9092b2d6c5c17cfe2bcf33fc38a41f2e4d4485b198c2b1074bba067e7168"),
                HexEncoder.Decode("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"),
                HexEncoder.Decode("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
            });

            var root = HexEncoder.Encode(tree.MerkleRootHash);

            Console.WriteLine(root);

            // 740c08b74d31bb77fd9806e4f6159d88dfd012acf8984bd41b4b4c9cbd7aa358

            var proof = tree.GetProof(1);

            Console.WriteLine(proof.ToJson());

            /*
             * [{
             *      "left": "e1566f09e0deea437826514431be6e4bdb4fe10aa54d75aecf0b4cdc1bc4320c"
             * },{
             *      "right":"2dba5dbc339e7316aea2683faf839c1b7b1ee2313db792112588118df066aa35"
             * }]"
             */

            var hash    = HexEncoder.Decode("2f7f9092b2d6c5c17cfe2bcf33fc38a41f2e4d4485b198c2b1074bba067e7168");
            var isValid = tree.ValidateProof(proof, hash);

            Console.WriteLine(isValid);             // true

            var receipt = proof.ToReceipt();

            receipt.AddBitcoinAnchor("780b4cdc16f09e0deebce156a434320c2654fe10aa54d75ae14431be6e4bdbcf");
            Console.WriteLine(receipt.ToJson());

            /*
             * {
             * "@context":"https://w3id.org/chainpoint/v2",
             * "type":"ChainpointSHA256v2",
             * "targetHash":"2f7f9092b2d6c5c17cfe2bcf33fc38a41f2e4d4485b198c2b1074bba067e7168",
             * "merkleRoot":"740c08b74d31bb77fd9806e4f6159d88dfd012acf8984bd41b4b4c9cbd7aa358",
             * "proof":[
             *        {
             *               "left":"e1566f09e0deea437826514431be6e4bdb4fe10aa54d75aecf0b4cdc1bc4320c"
             *        },
             *        {
             *               "right":"2dba5dbc339e7316aea2683faf839c1b7b1ee2313db792112588118df066aa35"
             *        }
             * ],
             * "anchors":[
             *        {
             *               "type":"BTCOpReturn",
             *               "sourceId":"780b4cdc16f09e0deebce156a434320c2654fe10aa54d75ae14431be6e4bdbcf"
             *        }
             * ]
             * }
             */
        }
 public void ShouldThrowOnBadInputWhenDecoding()
 {
     var encoder = new HexEncoder();
     Assert.Throws(typeof (ArgumentException), () => encoder.Decode("odd"));
     Assert.Throws(typeof (ArgumentException), () => encoder.Decode("even"));
 }
 public void ShouldHandleUpperAndLowerCaseEncoded()
 {
     var encoder = new HexEncoder();
     Assert.AreEqual(new byte[] {0x33, 0xa4}, encoder.Decode("33a4"));
     Assert.AreEqual(new byte[] {0x33, 0xa4}, encoder.Decode("33A4"));
 }