forked from lightningnetwork/lnd
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request lightningnetwork#1937 from halseth/data-loss-prote…
…ct-resending Data loss protect resending
- Loading branch information
Showing
13 changed files
with
1,180 additions
and
581 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package channeldb | ||
|
||
import "io" | ||
|
||
// deserializeCloseChannelSummaryV6 reads the v6 database format for | ||
// ChannelCloseSummary. | ||
// | ||
// NOTE: deprecated, only for migration. | ||
func deserializeCloseChannelSummaryV6(r io.Reader) (*ChannelCloseSummary, error) { | ||
c := &ChannelCloseSummary{} | ||
|
||
err := ReadElements(r, | ||
&c.ChanPoint, &c.ShortChanID, &c.ChainHash, &c.ClosingTXID, | ||
&c.CloseHeight, &c.RemotePub, &c.Capacity, &c.SettledBalance, | ||
&c.TimeLockedBalance, &c.CloseType, &c.IsPending, | ||
) | ||
if err != nil { | ||
return nil, err | ||
} | ||
|
||
// We'll now check to see if the channel close summary was encoded with | ||
// any of the additional optional fields. | ||
err = ReadElements(r, &c.RemoteCurrentRevocation) | ||
switch { | ||
case err == io.EOF: | ||
return c, nil | ||
|
||
// If we got a non-eof error, then we know there's an actually issue. | ||
// Otherwise, it may have been the case that this summary didn't have | ||
// the set of optional fields. | ||
case err != nil: | ||
return nil, err | ||
} | ||
|
||
if err := readChanConfig(r, &c.LocalChanConfig); err != nil { | ||
return nil, err | ||
} | ||
|
||
// Finally, we'll attempt to read the next unrevoked commitment point | ||
// for the remote party. If we closed the channel before receiving a | ||
// funding locked message, then this can be nil. As a result, we'll use | ||
// the same technique to read the field, only if there's still data | ||
// left in the buffer. | ||
err = ReadElements(r, &c.RemoteNextRevocation) | ||
if err != nil && err != io.EOF { | ||
// If we got a non-eof error, then we know there's an actually | ||
// issue. Otherwise, it may have been the case that this | ||
// summary didn't have the set of optional fields. | ||
return nil, err | ||
} | ||
|
||
return c, nil | ||
} |
Oops, something went wrong.