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