lnrpc+rpcserver: add new field LockedIn for HTLCs
In this commit, we add a new field `LockedIn` on HTLCs so it can be used to decide whether an HTLC found on the local commitment has been committed on the remote commitment.
This commit is contained in:
4 files changed
+2748
-2715
No files matched your search
+2728
-2715
File diff suppressed because it is too large.
Load diff
@@ -1381,6 +1381,13 @@ message HTLC {
|
|||||||
|
|
||||||
// Index identifying the htlc on the forwarding channel.
|
// Index identifying the htlc on the forwarding channel.
|
||||||
uint64 forwarding_htlc_index = 7;
|
uint64 forwarding_htlc_index = 7;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Whether the HTLC is locked in. An HTLC is considered locked in when the
|
||||||
|
remote party has sent us the `revoke_and_ack` to irrevocably commit this
|
||||||
|
HTLC.
|
||||||
|
*/
|
||||||
|
bool locked_in = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum CommitmentType {
|
enum CommitmentType {
|
||||||
|
|||||||
@@ -5302,6 +5302,10 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "uint64",
|
"format": "uint64",
|
||||||
"description": "Index identifying the htlc on the forwarding channel."
|
"description": "Index identifying the htlc on the forwarding channel."
|
||||||
|
},
|
||||||
|
"locked_in": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether the HTLC is locked in. An HTLC is considered locked in when the\nremote party has sent us the `revoke_and_ack` to irrevocably commit this\nHTLC."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4842,6 +4842,14 @@ func createRPCOpenChannel(r *rpcServer, dbChannel *channeldb.OpenChannel,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create a set of the HTLCs found in the remote commitment, which is
|
||||||
|
// used to decide whether the HTLCs from the local commitment has been
|
||||||
|
// locked in or not.
|
||||||
|
remoteHTLCs := fn.NewSet[[32]byte]()
|
||||||
|
for _, htlc := range dbChannel.RemoteCommitment.Htlcs {
|
||||||
|
remoteHTLCs.Add(htlc.RHash)
|
||||||
|
}
|
||||||
|
|
||||||
for i, htlc := range localCommit.Htlcs {
|
for i, htlc := range localCommit.Htlcs {
|
||||||
var rHash [32]byte
|
var rHash [32]byte
|
||||||
copy(rHash[:], htlc.RHash[:])
|
copy(rHash[:], htlc.RHash[:])
|
||||||
@@ -4893,6 +4901,7 @@ func createRPCOpenChannel(r *rpcServer, dbChannel *channeldb.OpenChannel,
|
|||||||
HtlcIndex: htlc.HtlcIndex,
|
HtlcIndex: htlc.HtlcIndex,
|
||||||
ForwardingChannel: forwardingChannel,
|
ForwardingChannel: forwardingChannel,
|
||||||
ForwardingHtlcIndex: forwardingHtlcIndex,
|
ForwardingHtlcIndex: forwardingHtlcIndex,
|
||||||
|
LockedIn: remoteHTLCs.Contains(rHash),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the Pending Htlc Amount to UnsettledBalance field.
|
// Add the Pending Htlc Amount to UnsettledBalance field.
|
||||||
|
|||||||
Reference in new issue
Block a user