From 4cda7b6c95efd1c339ba2c757e83206657878814 Mon Sep 17 00:00:00 2001 From: Afshin Arani Date: Mon, 29 May 2023 17:07:01 +0330 Subject: [PATCH] DotNetRGS: remove mut var in serializeChanUpdate --- DotNetRGS/GossipSnapshotter.fs | 177 ++++++++++++++++++++------------- 1 file changed, 109 insertions(+), 68 deletions(-) diff --git a/DotNetRGS/GossipSnapshotter.fs b/DotNetRGS/GossipSnapshotter.fs index 1e29133..d8ccca7 100644 --- a/DotNetRGS/GossipSnapshotter.fs +++ b/DotNetRGS/GossipSnapshotter.fs @@ -847,7 +847,7 @@ type GossipSnapshotter (previousShortChannelId: ShortChannelId) = let latestUpdate = update.Update - let mutable serializedFlags = latestUpdate.ChannelFlags + let channelFlags = latestUpdate.ChannelFlags if previousShortChannelId > latestUpdate.ShortChannelId then failwith @@ -856,91 +856,132 @@ type GossipSnapshotter use deltaMemStream = new MemoryStream() use deltaWriterStream = new LightningWriterStream(deltaMemStream) - match update.Mechanism with - | UpdateSerializationMechanism.Full -> - if latestUpdate.CLTVExpiryDelta <> defaultValues.CLTVExpiryDelta then - serializedFlags <- serializedFlags ||| 0b0100_0000uy + let serializedFlags = + match update.Mechanism with + | UpdateSerializationMechanism.Full -> + let serializedFlags = channelFlags - deltaWriterStream.Write( - latestUpdate.CLTVExpiryDelta.Value, - false - ) + let serializedFlags = + if latestUpdate.CLTVExpiryDelta + <> defaultValues.CLTVExpiryDelta then + deltaWriterStream.Write( + latestUpdate.CLTVExpiryDelta.Value, + false + ) - if latestUpdate.HTLCMinimumMSat <> defaultValues.HTLCMinimumMSat then - serializedFlags <- serializedFlags ||| 0b0010_0000uy + serializedFlags ||| 0b0100_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.HTLCMinimumMSat.MilliSatoshi |> uint64, - false - ) + let serializedFlags = + if latestUpdate.HTLCMinimumMSat + <> defaultValues.HTLCMinimumMSat then + deltaWriterStream.Write( + latestUpdate.HTLCMinimumMSat.MilliSatoshi |> uint64, + false + ) - if latestUpdate.FeeBaseMSat <> defaultValues.FeeBaseMSat then - serializedFlags <- serializedFlags ||| 0b0001_0000uy + serializedFlags ||| 0b0010_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.FeeBaseMSat.MilliSatoshi |> uint32, - false - ) + let serializedFlags = + if latestUpdate.FeeBaseMSat <> defaultValues.FeeBaseMSat then + deltaWriterStream.Write( + latestUpdate.FeeBaseMSat.MilliSatoshi |> uint32, + false + ) - if latestUpdate.FeeProportionalMillionths - <> defaultValues.FeeProportionalMillionths then - serializedFlags <- serializedFlags ||| 0b0000_1000uy + serializedFlags ||| 0b0001_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.FeeProportionalMillionths, - false - ) + let serializedFlags = + if latestUpdate.FeeProportionalMillionths + <> defaultValues.FeeProportionalMillionths then + deltaWriterStream.Write( + latestUpdate.FeeProportionalMillionths, + false + ) - if latestUpdate.HTLCMaximumMSat.Value - <> defaultValues.HTLCMaximumMSat then - serializedFlags <- serializedFlags ||| 0b0000_0100uy + serializedFlags ||| 0b0000_1000uy + else + serializedFlags + + let serializedFlags = + if latestUpdate.HTLCMaximumMSat.Value + <> defaultValues.HTLCMaximumMSat then + deltaWriterStream.Write( + latestUpdate.HTLCMaximumMSat.Value.MilliSatoshi + |> uint64, + false + ) - deltaWriterStream.Write( - latestUpdate.HTLCMaximumMSat.Value.MilliSatoshi |> uint64, - false - ) - | UpdateSerializationMechanism.Incremental mutatedProperties -> - serializedFlags <- serializedFlags ||| 0b1000_0000uy + serializedFlags ||| 0b0000_0100uy + else + serializedFlags - if mutatedProperties.CltvExpiryDelta then - serializedFlags <- serializedFlags ||| 0b0100_0000uy + serializedFlags + | UpdateSerializationMechanism.Incremental mutatedProperties -> + let serializedFlags = channelFlags ||| 0b1000_0000uy - deltaWriterStream.Write( - latestUpdate.CLTVExpiryDelta.Value, - false - ) + let serializedFlags = + if mutatedProperties.CltvExpiryDelta then + deltaWriterStream.Write( + latestUpdate.CLTVExpiryDelta.Value, + false + ) - if mutatedProperties.HtlcMinimumMSat then - serializedFlags <- serializedFlags ||| 0b0010_0000uy + serializedFlags ||| 0b0100_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.HTLCMinimumMSat.MilliSatoshi |> uint64, - false - ) + let serializedFlags = + if mutatedProperties.HtlcMinimumMSat then + deltaWriterStream.Write( + latestUpdate.HTLCMinimumMSat.MilliSatoshi |> uint64, + false + ) - if mutatedProperties.FeeBaseMSat then - serializedFlags <- serializedFlags ||| 0b0001_0000uy + serializedFlags ||| 0b0010_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.FeeBaseMSat.MilliSatoshi |> uint32, - false - ) + let serializedFlags = + if mutatedProperties.FeeBaseMSat then + deltaWriterStream.Write( + latestUpdate.FeeBaseMSat.MilliSatoshi |> uint32, + false + ) - if mutatedProperties.FeeProportionalMillionths then - serializedFlags <- serializedFlags ||| 0b0000_1000uy + serializedFlags ||| 0b0001_0000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.FeeProportionalMillionths, - false - ) + let serializedFlags = + if mutatedProperties.FeeProportionalMillionths then + deltaWriterStream.Write( + latestUpdate.FeeProportionalMillionths, + false + ) - if mutatedProperties.HtlcMaximumMSat then - serializedFlags <- serializedFlags ||| 0b0000_0100uy + serializedFlags ||| 0b0000_1000uy + else + serializedFlags - deltaWriterStream.Write( - latestUpdate.HTLCMaximumMSat.Value.MilliSatoshi |> uint64, - false - ) + let serializedFlags = + if mutatedProperties.HtlcMaximumMSat then + deltaWriterStream.Write( + latestUpdate.HTLCMaximumMSat.Value.MilliSatoshi + |> uint64, + false + ) + + serializedFlags ||| 0b0000_0100uy + else + serializedFlags + + serializedFlags use prefixedMemStream = new MemoryStream() use prefixedWriterStream = new LightningWriterStream(prefixedMemStream) @@ -1144,6 +1185,7 @@ type GossipSnapshotter let snapshotSyncDayFactors = [ + Int32.MaxValue 1 2 3 @@ -1153,7 +1195,6 @@ type GossipSnapshotter 7 14 21 - Int32.MaxValue ] let referenceTimestamp =