Esempio n. 1
0
        public void WriteSet()
        {
            var writeSet = new WriteSetLCS();

            writeSet.WriteSet = new Dictionary <AccessPathLCS, WriteOpLCS>();
            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a"
                },
                Path = "01217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Deletion
            });

            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f"
                },
                Path = "01217da6c6b3e19f18".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Value,
                Value       = "cafed00d".FromHexToBytes()
            });

            var actual   = LCSCore.LCSDeserialization(writeSet).ByteArrayToString();
            var expected = "02000000a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a2100000001217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc9700000000c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f0900000001217da6c6b3e19f180100000004000000cafed00d".ToLower();

            Assert.Equal(expected, actual);
        }
Esempio n. 2
0
        public void WriteSet()
        {
            var writeSet = new WriteSetLCS();

            writeSet.WriteSet = new Dictionary <AccessPathLCS, WriteOpLCS>();
            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a"
                },
                Path = "01217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Deletion
            });

            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f"
                },
                Path = "01217da6c6b3e19f18".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Value,
                Value       = "cafed00d".FromHexToBytes()
            });

            var actual   = LCSCore.LCSDeserialization(writeSet).ByteArrayToString();
            var expected = "0200000020000000A71D76FAA2D2D5C3224EC3D41DEB293973564A791E55C6782BA76C2BF0495F9A2100000001217DA6C6B3E19F1825CFB2676DAECCE3BF3DE03CF26647C78DF00B371B25CC970000000020000000C4C63F80C74B11263E421EBF8486A4E398D0DBC09FA7D4F62CCDB309F3AEA81F0900000001217DA6C6B3E19F180100000004000000CAFED00D".ToLower();

            Assert.Equal(expected, actual);
        }
Esempio n. 3
0
        public void RawTransaction()
        {
            var writeSet = new WriteSetLCS();

            writeSet.WriteSet = new Dictionary <AccessPathLCS, WriteOpLCS>();
            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a"
                },
                Path = "01217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Deletion
            });

            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f"
                },
                Path = "01217da6c6b3e19f18".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Value,
                Value       = "cafed00d".FromHexToBytes()
            });

            var transaction = new RawTransactionLCS
            {
                Sender = new AddressLCS
                {
                    Value = "c3398a599a6f3b9f30b635af29f2ba046d3a752c26e9d0647b9647d1f4c04ad4"
                },
                SequenceNumber     = 32,
                TransactionPayload = new TransactionPayloadLCS
                {
                    PayloadType = TransactionPayloadType.WriteSet,
                    WriteSet    = writeSet
                },
                MaxGasAmount   = 0UL,
                GasUnitPrice   = 0UL,
                ExpirationTime = 18446744073709551615UL
            };
            var actual   = LCSCore.LCSDeserialization(transaction).ByteArrayToString();
            var expected = "c3398a599a6f3b9f30b635af29f2ba046d3a752c26e9d0647b9647d1f4c04ad420000000000000000100000002000000a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a2100000001217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc9700000000c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f0900000001217da6c6b3e19f180100000004000000cafed00d00000000000000000000000000000000ffffffffffffffff".ToLower();

            Assert.Equal(expected, actual);
        }
Esempio n. 4
0
        public void RawTransaction()
        {
            var writeSet = new WriteSetLCS();

            writeSet.WriteSet = new Dictionary <AccessPathLCS, WriteOpLCS>();
            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "a71d76faa2d2d5c3224ec3d41deb293973564a791e55c6782ba76c2bf0495f9a"
                },
                Path = "01217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc97".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Deletion
            });

            writeSet.WriteSet.Add(new AccessPathLCS
            {
                Address = new AddressLCS
                {
                    Value = "c4c63f80c74b11263e421ebf8486a4e398d0dbc09fa7d4f62ccdb309f3aea81f"
                },
                Path = "01217da6c6b3e19f18".FromHexToBytes()
            }, new WriteOpLCS
            {
                WriteOpType = WriteOpType.Value,
                Value       = "cafed00d".FromHexToBytes()
            });

            var transaction = new RawTransactionLCS
            {
                Sender = new AddressLCS
                {
                    Value = "c3398a599a6f3b9f30b635af29f2ba046d3a752c26e9d0647b9647d1f4c04ad4"
                },
                SequenceNumber     = 32,
                TransactionPayload = new TransactionPayloadLCS
                {
                    PayloadType = TransactionPayloadType.WriteSet,
                    WriteSet    = writeSet
                },
                MaxGasAmount   = 0UL,
                GasUnitPrice   = 0UL,
                ExpirationTime = 18446744073709551615UL
            };
            var actual   = LCSCore.LCSDeserialization(transaction).ByteArrayToString();
            var expected = "20000000C3398A599A6F3B9F30B635AF29F2BA046D3A752C26E9D0647B9647D1F4C04AD42000000000000000010000000200000020000000A71D76FAA2D2D5C3224EC3D41DEB293973564A791E55C6782BA76C2BF0495F9A2100000001217DA6C6B3E19F1825CFB2676DAECCE3BF3DE03CF26647C78DF00B371B25CC970000000020000000C4C63F80C74B11263E421EBF8486A4E398D0DBC09FA7D4F62CCDB309F3AEA81F0900000001217DA6C6B3E19F180100000004000000CAFED00D00000000000000000000000000000000FFFFFFFFFFFFFFFF".ToLower();

            Assert.Equal(expected, actual);
        }
Esempio n. 5
0
        public WriteSetLCS GetWriteSet(byte[] source, ref int cursor)
        {
            var retVal = new WriteSetLCS();

            retVal.WriteSet = new Dictionary <AccessPathLCS, WriteOpLCS>();
            retVal.Length   = Read_u32(source, ref cursor);

            for (int i = 0; i < retVal.Length; i++)
            {
                var key   = source.LCSerialization <AccessPathLCS>(ref cursor);
                var value = source.LCSerialization <WriteOpLCS>(ref cursor);

                retVal.WriteSet.Add(key, value);
            }
            return(retVal);
        }