lnwallet: add HtlcPoint() resolution helper methods
Co-authored-by: Joost Jager <joost.jager@gmail.com>
This commit is contained in:
parent
865f7568d6
commit
93754f8d37
@ -1084,33 +1084,11 @@ func (c *ChannelArbitrator) prepContractResolutions(htlcActions ChainActionMap,
|
|||||||
inResolutionMap := make(map[wire.OutPoint]lnwallet.IncomingHtlcResolution)
|
inResolutionMap := make(map[wire.OutPoint]lnwallet.IncomingHtlcResolution)
|
||||||
for i := 0; i < len(incomingResolutions); i++ {
|
for i := 0; i < len(incomingResolutions); i++ {
|
||||||
inRes := incomingResolutions[i]
|
inRes := incomingResolutions[i]
|
||||||
|
inResolutionMap[inRes.HtlcPoint()] = inRes
|
||||||
// If we have a success transaction, then the htlc's outpoint
|
|
||||||
// is the transaction's only input. Otherwise, it's the claim
|
|
||||||
// point.
|
|
||||||
var htlcPoint wire.OutPoint
|
|
||||||
if inRes.SignedSuccessTx != nil {
|
|
||||||
htlcPoint = inRes.SignedSuccessTx.TxIn[0].PreviousOutPoint
|
|
||||||
} else {
|
|
||||||
htlcPoint = inRes.ClaimOutpoint
|
|
||||||
}
|
|
||||||
|
|
||||||
inResolutionMap[htlcPoint] = inRes
|
|
||||||
}
|
}
|
||||||
for i := 0; i < len(outgoingResolutions); i++ {
|
for i := 0; i < len(outgoingResolutions); i++ {
|
||||||
outRes := outgoingResolutions[i]
|
outRes := outgoingResolutions[i]
|
||||||
|
outResolutionMap[outRes.HtlcPoint()] = outRes
|
||||||
// If we have a timeout transaction, then the htlc's outpoint
|
|
||||||
// is the transaction's only input. Otherwise, it's the claim
|
|
||||||
// point.
|
|
||||||
var htlcPoint wire.OutPoint
|
|
||||||
if outRes.SignedTimeoutTx != nil {
|
|
||||||
htlcPoint = outRes.SignedTimeoutTx.TxIn[0].PreviousOutPoint
|
|
||||||
} else {
|
|
||||||
htlcPoint = outRes.ClaimOutpoint
|
|
||||||
}
|
|
||||||
|
|
||||||
outResolutionMap[htlcPoint] = outRes
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// We'll create the resolver kit that we'll be cloning for each
|
// We'll create the resolver kit that we'll be cloning for each
|
||||||
|
@ -5499,6 +5499,30 @@ func newIncomingHtlcResolution(signer Signer, localChanCfg *channeldb.ChannelCon
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HtlcPoint returns the htlc's outpoint on the commitment tx.
|
||||||
|
func (r *IncomingHtlcResolution) HtlcPoint() wire.OutPoint {
|
||||||
|
// If we have a success transaction, then the htlc's outpoint
|
||||||
|
// is the transaction's only input. Otherwise, it's the claim
|
||||||
|
// point.
|
||||||
|
if r.SignedSuccessTx != nil {
|
||||||
|
return r.SignedSuccessTx.TxIn[0].PreviousOutPoint
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.ClaimOutpoint
|
||||||
|
}
|
||||||
|
|
||||||
|
// HtlcPoint returns the htlc's outpoint on the commitment tx.
|
||||||
|
func (r *OutgoingHtlcResolution) HtlcPoint() wire.OutPoint {
|
||||||
|
// If we have a timeout transaction, then the htlc's outpoint
|
||||||
|
// is the transaction's only input. Otherwise, it's the claim
|
||||||
|
// point.
|
||||||
|
if r.SignedTimeoutTx != nil {
|
||||||
|
return r.SignedTimeoutTx.TxIn[0].PreviousOutPoint
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.ClaimOutpoint
|
||||||
|
}
|
||||||
|
|
||||||
// extractHtlcResolutions creates a series of outgoing HTLC resolutions, and
|
// extractHtlcResolutions creates a series of outgoing HTLC resolutions, and
|
||||||
// the local key used when generating the HTLC scrips. This function is to be
|
// the local key used when generating the HTLC scrips. This function is to be
|
||||||
// used in two cases: force close, or a unilateral close.
|
// used in two cases: force close, or a unilateral close.
|
||||||
|
Loading…
Reference in New Issue
Block a user