예제 #1
0
        public void should_construct_transaction()
        {
            // arrange
            var trx =
                "010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff5f038b5c0904e614245e2f706f6f6c696e2e636f6d2ffabe6d6d29ad483008e6afa933b7248433f8dccc7fe02301022e4a3271eaf3bd3210f3160100000000000000c10db97992756fa5c7fb1a07acf5a834104995aa2f008ab8000000000000ffffffff04e25f2b4b000000001976a914e0ad60c897901128662623c500a4a6079e99cd3e88ac0000000000000000266a24b9e11b6dcffd93e719c6cbccf1b271ba8e2920c2a3a9fa8b1aabca5fef2a7fc282ce898f0000000000000000266a24aa21a9eda8657fc67746fd56ac874234c52b766fb63ab9b090d5281a5c602d3dfd9ddef900000000000000002b6a2952534b424c4f434b3ac2e0675c8a11c2290b5e471ed155dde2048c83d2e00b4304ca5a7c21001f3b3e012000000000000000000000000000000000000000000000000000000000000000002fa1d41e";

            var trxbytes           = new HexReader().ToByteArray(trx);
            var loggedBinaryReader = new LoggedBinaryReader(new MemoryStream(trxbytes));

            // act
            var realTransaction = new BitcoinReader(new HexReader()).ReadTransaction(loggedBinaryReader);

            // assert
        }
예제 #2
0
        public void should_parse_pizza_transaction()
        {
            // arrange
            var pizzaPath          = "data/pizza_transaction_hex.txt";
            var loggedBinaryReader = LoggedBinaryReader.FromAsciiFile(pizzaPath);

            // act
            var transaction = _bitcoinReader.ReadTransaction(loggedBinaryReader);

            // assert
            var trxHash = BitConverter.ToString(transaction.TrxId);

            Assert.AreEqual("a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d", trxHash);
        }
예제 #3
0
        public void should_store_when_data()
        {
            // arrange
            var data         = new byte[] { 1, 2, 3 };
            var binaryReader = new LoggedBinaryReader(new MemoryStream(data));

            // act
            var res      = binaryReader.ReadBytes(3);
            var readData = res.AsSpan();

            // assert
            Assert.AreEqual(3, res.Length);
            Assert.AreEqual(1, res[0]);
            Assert.AreEqual(2, res[1]);
            Assert.AreEqual(3, res[2]);

            Assert.AreEqual(1, readData[0]);
            Assert.AreEqual(2, readData[1]);
            Assert.AreEqual(3, readData[2]);
        }
예제 #4
0
        public void should_store_with_stream()
        {
            // arrange
            var data                    = new byte[] { 1, 2, 3 };
            var memoryStream            = new MemoryStream(data);
            var binaryReader            = new BinaryReader(memoryStream);
            var transactionBinaryReader = new LoggedBinaryReader(memoryStream);

            // act
            var one      = binaryReader.ReadByte();
            var two      = transactionBinaryReader.ReadByte();
            var otherTwo = transactionBinaryReader.AsSpan()[0];

            transactionBinaryReader.Reset();
            var three      = transactionBinaryReader.ReadByte();
            var otherThree = transactionBinaryReader.AsSpan()[0];

            // assert
            Assert.AreEqual(1, one);
            Assert.AreEqual(2, two);
            Assert.AreEqual(2, otherTwo);
            Assert.AreEqual(3, three);
            Assert.AreEqual(3, otherThree);
        }