public RawTransactionLCS GetRawTransaction(byte[] source, ref int cursor)
        {
            var retVal = new RawTransactionLCS();

            retVal.Sender             = source.LCSerialization <AddressLCS>(ref cursor);
            retVal.SequenceNumber     = source.LCSerialization <ulong>(ref cursor);
            retVal.TransactionPayload =
                source.LCSerialization <TransactionPayloadLCS>(ref cursor);
            retVal.MaxGasAmount   = Read_u64(source, ref cursor);
            retVal.GasUnitPrice   = Read_u64(source, ref cursor);
            retVal.ExpirationTime = Read_u64(source, ref cursor);

            return(retVal);
        }
        public byte[] RawTransactionToByte(RawTransactionLCS source)
        {
            var result   = LCSCore.LCSDeserialization(source.Sender);
            var sequence = LCSCore.LCSDeserialization(source.SequenceNumber);

            result = result.Concat(sequence).ToArray();
            var payload = LCSCore.LCSDeserialization(source.TransactionPayload);

            result = result.Concat(payload).ToArray();
            var max = LCSCore.LCSDeserialization(source.MaxGasAmount);

            result = result.Concat(max).ToArray();
            var gas = LCSCore.LCSDeserialization(source.GasUnitPrice);

            result = result.Concat(gas).ToArray();
            var expire = LCSCore.LCSDeserialization(source.ExpirationTime);

            result = result.Concat(expire).ToArray();
            return(result);
        }