2cc5891c8c
In this commit, we address an issue that would cause us to scan from the genesis block for the spend of an output that we wish to use to raise the fee of a transaction through CPFP. This was due to setting a 0 height hint when constructing the input required by the sweeper and was discovered due to the recently added validation checks at the chain notifier level. We'll now use the current height as the height hint instead as the sweeper will end up creating a new transaction that spends the input.
51 lines
1.9 KiB
Go
51 lines
1.9 KiB
Go
// +build walletrpc
|
|
|
|
package walletrpc
|
|
|
|
import (
|
|
"github.com/lightningnetwork/lnd/keychain"
|
|
"github.com/lightningnetwork/lnd/lnwallet"
|
|
"github.com/lightningnetwork/lnd/macaroons"
|
|
"github.com/lightningnetwork/lnd/sweep"
|
|
)
|
|
|
|
// Config is the primary configuration struct for the WalletKit RPC server. It
|
|
// contains all the items required for the signer rpc server to carry out its
|
|
// duties. The fields with struct tags are meant to be parsed as normal
|
|
// configuration options, while if able to be populated, the latter fields MUST
|
|
// also be specified.
|
|
type Config struct {
|
|
// WalletKitMacPath is the path for the signer macaroon. If unspecified
|
|
// then we assume that the macaroon will be found under the network
|
|
// directory, named DefaultWalletKitMacFilename.
|
|
WalletKitMacPath string `long:"walletkitmacaroonpath" description:"Path to the wallet kit macaroon"`
|
|
|
|
// NetworkDir is the main network directory wherein the signer rpc
|
|
// server will find the macaroon named DefaultWalletKitMacFilename.
|
|
NetworkDir string
|
|
|
|
// MacService is the main macaroon service that we'll use to handle
|
|
// authentication for the signer rpc server.
|
|
MacService *macaroons.Service
|
|
|
|
// FeeEstimator is an instance of the primary fee estimator instance
|
|
// the WalletKit will use to respond to fee estimation requests.
|
|
FeeEstimator lnwallet.FeeEstimator
|
|
|
|
// Wallet is the primary wallet that the WalletKit will use to proxy
|
|
// any relevant requests to.
|
|
Wallet lnwallet.WalletController
|
|
|
|
// KeyRing is an interface that the WalletKit will use to derive any
|
|
// keys due to incoming client requests.
|
|
KeyRing keychain.KeyRing
|
|
|
|
// Sweeper is the central batching engine of lnd. It is responsible for
|
|
// sweeping inputs in batches back into the wallet.
|
|
Sweeper *sweep.UtxoSweeper
|
|
|
|
// Chain is an interface that the WalletKit will use to determine state
|
|
// about the backing chain of the wallet.
|
|
Chain lnwallet.BlockChainIO
|
|
}
|