Beispiel #1
0
        public TransactionArgumentLCS GetTransactionArgument(byte[] source,
                                                             ref int cursor)
        {
            var retVal = new TransactionArgumentLCS();

            retVal.ArgType = Read_u32(source, ref cursor);

            if (retVal.ArgTypeEnum == Enum.ETransactionArgumentLCS.U64)
            {
                retVal.U64 = Read_u64(source, ref cursor);
            }
            else if (retVal.ArgTypeEnum == Enum.ETransactionArgumentLCS.Address)
            {
                retVal.Address = source.LCSerialization <AddressLCS>(ref cursor);
            }
            else if (retVal.ArgTypeEnum == Enum.ETransactionArgumentLCS.ByteArray)
            {
                retVal.ByteArray = source.LCSerialization <byte[]>(ref cursor);
            }
            else if (retVal.ArgTypeEnum == Enum.ETransactionArgumentLCS.String)
            {
                retVal.String = source.LCSerialization <string>(ref cursor);
            }

            return(retVal);
        }
Beispiel #2
0
        public byte[] TransactionArgumentToByte(TransactionArgumentLCS source)
        {
            var argType = U32ToByte(source.ArgType);

            byte[] data;
            switch (source.ArgTypeEnum)
            {
                case TransactionArgumentLCSEnum.Address:

                    data = AddressToByte(source.Address);
                    return argType.Concat(data).ToArray();

                case TransactionArgumentLCSEnum.ByteArray:

                    data = ByteArrToByte(source.ByteArray);
                    return argType.Concat(data).ToArray();

                case TransactionArgumentLCSEnum.String:

                    data = StringToByte(source.String);
                    return argType.Concat(data).ToArray();

                case TransactionArgumentLCSEnum.U64:

                    data = BitConverter.GetBytes(source.U64);
                    return argType.Concat(data).ToArray();
            }

            throw new InvalidOperationException();
        }
Beispiel #3
0
        public byte[] TransactionArgumentToByte(TransactionArgumentLCS source)
        {
            List <byte> retArr  = new List <byte>();
            var         argType = U32ToByte(source.ArgType);

            retArr = retArr.Concat(argType).ToList();

            if (source.ArgTypeEnum == Enum.ETransactionArgumentLCS.U64)
            {
                var arg = U64ToByte(source.U64);
                retArr = retArr.Concat(arg).ToList();
            }
            else if (source.ArgTypeEnum == Enum.ETransactionArgumentLCS.Address)
            {
                var arg = LCSCore.LCSerialize(source.Address);
                retArr = retArr.Concat(arg).ToList();
            }
            else if (source.ArgTypeEnum == Enum.ETransactionArgumentLCS.String)
            {
                var arg = LCSCore.LCSerialize(source.String);
                retArr = retArr.Concat(arg).ToList();
            }
            else if (source.ArgTypeEnum == Enum.ETransactionArgumentLCS.ByteArray)
            {
                var arg = LCSCore.LCSerialize(source.ByteArray);
                retArr = retArr.Concat(arg).ToList();
            }

            return(retArr.ToArray());
        }
Beispiel #4
0
        public void TransactionArgumentByteAddress()
        {
            var transactionArgument = new TransactionArgumentLCS
            {
                ArgType   = Types.TransactionArgument.Types.ArgType.Bytearray,
                ByteArray = "cafed00d".FromHexToBytes()
            };

            var actual   = LCSCore.LCSDeserialization(transactionArgument).ByteArrayToString();
            var expected = "0300000004000000CAFED00D".ToLower();

            Assert.Equal(expected, actual);
        }
Beispiel #5
0
        public void TransactionArgumentString()
        {
            var stringArgument = new TransactionArgumentLCS()
            {
                String  = "Hello, World!",
                ArgType = Types.TransactionArgument.Types.ArgType.String
            };

            var actual   = LCSCore.LCSDeserialization(stringArgument).ByteArrayToString();
            var expected = "020000000D00000048656C6C6F2C20576F726C6421".ToLower();

            Assert.Equal(expected, actual);
        }
Beispiel #6
0
        public void TransactionArgumentU64()
        {
            var u64Argument = new TransactionArgumentLCS()
            {
                U64     = 9213671392124193148,
                ArgType = Types.TransactionArgument.Types.ArgType.U64
            };

            var actual   = LCSCore.LCSDeserialization(u64Argument).ByteArrayToString();
            var expected = "000000007CC9BDA45089DD7F".ToLower();

            Assert.Equal(expected, actual);
        }
        private static void GerArg(List <CustomTransactionArgument> arguments, TransactionArgumentLCS item)
        {
            var transactionArgument = new CustomTransactionArgument();

            transactionArgument.ArgType = (uint)item.ArgTypeEnum;

            transactionArgument.Address   = item.Address.Value;
            transactionArgument.U64       = item.U64;
            transactionArgument.String    = item.String;
            transactionArgument.ByteArray = item.ByteArray;

            arguments.Add(transactionArgument);
        }
Beispiel #8
0
        public void TransactionArgumentAccountAddress()
        {
            var transactionArgument = new TransactionArgumentLCS
            {
                ArgType = Types.TransactionArgument.Types.ArgType.Address,
                Address = new AddressLCS()
                {
                    Value = "2c25991785343b23ae073a50e5fd809a2cd867526b3c1db2b0bf5d1924c693ed"
                }
            };
            var actual   = LCSCore.LCSDeserialization(transactionArgument).ByteArrayToString();
            var expected = "010000002c25991785343b23ae073a50e5fd809a2cd867526b3c1db2b0bf5d1924c693ed".ToLower();

            Assert.Equal(expected, actual);
        }