You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.7 KiB
67 lines
2.7 KiB
package contractcourt |
|
|
|
import ( |
|
"io" |
|
|
|
"github.com/btcsuite/btcd/wire" |
|
"github.com/lightningnetwork/lnd/channeldb" |
|
"github.com/lightningnetwork/lnd/htlcswitch/hop" |
|
"github.com/lightningnetwork/lnd/input" |
|
"github.com/lightningnetwork/lnd/invoices" |
|
"github.com/lightningnetwork/lnd/lntypes" |
|
"github.com/lightningnetwork/lnd/lnwallet/chainfee" |
|
"github.com/lightningnetwork/lnd/lnwire" |
|
"github.com/lightningnetwork/lnd/sweep" |
|
) |
|
|
|
// Registry is an interface which represents the invoice registry. |
|
type Registry interface { |
|
// LookupInvoice attempts to look up an invoice according to its 32 |
|
// byte payment hash. |
|
LookupInvoice(lntypes.Hash) (channeldb.Invoice, error) |
|
|
|
// NotifyExitHopHtlc attempts to mark an invoice as settled. If the |
|
// invoice is a debug invoice, then this method is a noop as debug |
|
// invoices are never fully settled. The return value describes how the |
|
// htlc should be resolved. If the htlc cannot be resolved immediately, |
|
// the resolution is sent on the passed in hodlChan later. |
|
NotifyExitHopHtlc(payHash lntypes.Hash, paidAmount lnwire.MilliSatoshi, |
|
expiry uint32, currentHeight int32, |
|
circuitKey channeldb.CircuitKey, hodlChan chan<- interface{}, |
|
payload invoices.Payload) (invoices.HtlcResolution, error) |
|
|
|
// HodlUnsubscribeAll unsubscribes from all htlc resolutions. |
|
HodlUnsubscribeAll(subscriber chan<- interface{}) |
|
} |
|
|
|
// OnionProcessor is an interface used to decode onion blobs. |
|
type OnionProcessor interface { |
|
// ReconstructHopIterator attempts to decode a valid sphinx packet from |
|
// the passed io.Reader instance. |
|
ReconstructHopIterator(r io.Reader, rHash []byte) (hop.Iterator, error) |
|
} |
|
|
|
// UtxoSweeper defines the sweep functions that contract court requires. |
|
type UtxoSweeper interface { |
|
// SweepInput sweeps inputs back into the wallet. |
|
SweepInput(input input.Input, params sweep.Params) (chan sweep.Result, |
|
error) |
|
|
|
// CreateSweepTx accepts a list of inputs and signs and generates a txn |
|
// that spends from them. This method also makes an accurate fee |
|
// estimate before generating the required witnesses. |
|
CreateSweepTx(inputs []input.Input, feePref sweep.FeePreference, |
|
currentBlockHeight uint32) (*wire.MsgTx, error) |
|
|
|
// RelayFeePerKW returns the minimum fee rate required for transactions |
|
// to be relayed. |
|
RelayFeePerKW() chainfee.SatPerKWeight |
|
|
|
// UpdateParams allows updating the sweep parameters of a pending input |
|
// in the UtxoSweeper. This function can be used to provide an updated |
|
// fee preference that will be used for a new sweep transaction of the |
|
// input that will act as a replacement transaction (RBF) of the |
|
// original sweeping transaction, if any. |
|
UpdateParams(input wire.OutPoint, params sweep.ParamsUpdate) ( |
|
chan sweep.Result, error) |
|
}
|
|
|