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); }
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(); }
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()); }
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); }
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); }
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); }
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); }