mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-01-18 13:27:56 +01:00
routing: add BlindedPayment() method to AdditionalEdges
Expand the AdditionalEdges interface with a BlindedPayment method. In upcoming commits, we will want to know if an AdditionalEdge was derived from a blinded payment or not and we will also need some information from the blinded payment it was derived from. So we expand the interface here to avoid needing to do type casts later on. The new method may return nil if the edge was not derived from a blinded payment.
This commit is contained in:
parent
f7a9aa875e
commit
28d1227c04
@ -29,6 +29,11 @@ type AdditionalEdge interface {
|
||||
|
||||
// EdgePolicy returns the policy of the additional edge.
|
||||
EdgePolicy() *models.CachedEdgePolicy
|
||||
|
||||
// BlindedPayment returns the BlindedPayment that this additional edge
|
||||
// info was derived from. It will return nil if this edge was not
|
||||
// derived from a blinded route.
|
||||
BlindedPayment() *BlindedPayment
|
||||
}
|
||||
|
||||
// PayloadSizeFunc defines the interface for the payload size function.
|
||||
@ -60,6 +65,12 @@ func (p *PrivateEdge) IntermediatePayloadSize(amount lnwire.MilliSatoshi,
|
||||
return hop.PayloadSize(channelID)
|
||||
}
|
||||
|
||||
// BlindedPayment is a no-op for a PrivateEdge since it is not associated with
|
||||
// a blinded payment. This will thus return nil.
|
||||
func (p *PrivateEdge) BlindedPayment() *BlindedPayment {
|
||||
return nil
|
||||
}
|
||||
|
||||
// BlindedEdge implements the AdditionalEdge interface. Blinded hops are viewed
|
||||
// as additional edges because they are appended at the end of a normal route.
|
||||
type BlindedEdge struct {
|
||||
@ -120,6 +131,12 @@ func (b *BlindedEdge) IntermediatePayloadSize(_ lnwire.MilliSatoshi, _ uint32,
|
||||
return hop.PayloadSize(0)
|
||||
}
|
||||
|
||||
// BlindedPayment returns the blinded payment that this edge is associated
|
||||
// with.
|
||||
func (b *BlindedEdge) BlindedPayment() *BlindedPayment {
|
||||
return b.blindedPayment
|
||||
}
|
||||
|
||||
// Compile-time constraints to ensure the PrivateEdge and the BlindedEdge
|
||||
// implement the AdditionalEdge interface.
|
||||
var _ AdditionalEdge = (*PrivateEdge)(nil)
|
||||
|
Loading…
Reference in New Issue
Block a user