routing+channeldb: make MPPayment into an interface
This commit turns `MPPayment` into an interface inside `routing`. Having this interface gives us the benefit to write more granular unit tests inside payment lifecycle. As seen from the modified unit tests, several hacky ways of testing the `SendPayment` method is now replaced by a mock over `MPPayment`.
This commit is contained in:
1 parent
c412ab5ccb
commit
34d0e5d4c5
8 files changed
+257
-167
No files matched your search
@@ -446,6 +446,26 @@ func (m *MPPayment) NeedWaitAttempts() (bool, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// GetState returns the internal state of the payment.
|
||||
func (m *MPPayment) GetState() *MPPaymentState {
|
||||
return m.State
|
||||
}
|
||||
|
||||
// Status returns the current status of the payment.
|
||||
func (m *MPPayment) GetStatus() PaymentStatus {
|
||||
return m.Status
|
||||
}
|
||||
|
||||
// GetPayment returns all the HTLCs for this payment.
|
||||
func (m *MPPayment) GetHTLCs() []HTLCAttempt {
|
||||
return m.HTLCs
|
||||
}
|
||||
|
||||
// GetFailureReason returns the failure reason.
|
||||
func (m *MPPayment) GetFailureReason() *FailureReason {
|
||||
return m.FailureReason
|
||||
}
|
||||
|
||||
// serializeHTLCSettleInfo serializes the details of a settled htlc.
|
||||
func serializeHTLCSettleInfo(w io.Writer, s *HTLCSettleInfo) error {
|
||||
if _, err := w.Write(s.Preimage[:]); err != nil {
|
||||
|
||||
Reference in new issue
Block a user