mirror of
https://github.com/lightninglabs/faraday.git
synced 2026-08-17 13:07:41 +02:00
We have a lot of different payment formats in lnd, since the payments database has been migrated multiple times. We need to account for the following: - Legacy payments: settled, no htlcs present - In flight payments: not settled, no htlcs present - Keysend payments: no payment request - Sendpayment + dest: no payment request present Since we need to list all payments (an invoice settled in our period could have been send by a payment before the period), we update our code to not fail in the case where we do not know payment destination. This will result in legacy circular payments (that were made with no payment request) not being identified as circular payments (as well as their corresponding invoices). We log an error for this, and make a note of it in our docs. This should not be an issue for payments made by newer versions on lnd, because they have the information we require.
60 lines
1.9 KiB
Go
60 lines
1.9 KiB
Go
package faraday
|
|
|
|
import (
|
|
"github.com/btcsuite/btclog"
|
|
"github.com/lightninglabs/faraday/accounting"
|
|
"github.com/lightninglabs/faraday/dataset"
|
|
"github.com/lightninglabs/faraday/fiat"
|
|
"github.com/lightninglabs/faraday/frdrpc"
|
|
"github.com/lightninglabs/faraday/recommend"
|
|
"github.com/lightninglabs/faraday/revenue"
|
|
"github.com/lightningnetwork/lnd/build"
|
|
)
|
|
|
|
// Subsystem defines the logging code for this subsystem.
|
|
const Subsystem = "FRDY"
|
|
|
|
var (
|
|
logWriter = build.NewRotatingLogWriter()
|
|
|
|
// log is a logger that is initialized with no output filters. This
|
|
// means the package will not perform any logging by default until the
|
|
// caller requests it.
|
|
log = build.NewSubLogger(Subsystem, logWriter.GenSubLogger)
|
|
)
|
|
|
|
// The default amount of logging is none.
|
|
func init() {
|
|
setSubLogger(Subsystem, log, nil)
|
|
addSubLogger(recommend.Subsystem, recommend.UseLogger)
|
|
addSubLogger(dataset.Subsystem, dataset.UseLogger)
|
|
addSubLogger(frdrpc.Subsystem, frdrpc.UseLogger)
|
|
addSubLogger(revenue.Subsystem, revenue.UseLogger)
|
|
addSubLogger(fiat.Subsystem, fiat.UseLogger)
|
|
addSubLogger(accounting.Subsystem, accounting.UseLogger)
|
|
}
|
|
|
|
// UseLogger uses a specified Logger to output package logging info.
|
|
// This should be used in preference to SetLogWriter if the caller is also
|
|
// using btclog.
|
|
func UseLogger(logger btclog.Logger) {
|
|
log = logger
|
|
}
|
|
|
|
// addSubLogger is a helper method to conveniently create and register the
|
|
// logger of a sub system.
|
|
func addSubLogger(subsystem string, useLogger func(btclog.Logger)) {
|
|
logger := build.NewSubLogger(subsystem, logWriter.GenSubLogger)
|
|
setSubLogger(subsystem, logger, useLogger)
|
|
}
|
|
|
|
// setSubLogger is a helper method to conveniently register the logger of a sub
|
|
// system.
|
|
func setSubLogger(subsystem string, logger btclog.Logger,
|
|
useLogger func(btclog.Logger)) {
|
|
|
|
logWriter.RegisterSubLogger(subsystem, logger)
|
|
if useLogger != nil {
|
|
useLogger(logger)
|
|
}
|
|
}
|