forked from lightningnetwork/lnd
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request lightningnetwork#8667 from lightningnetwork/elle-n…
…ew-sweeper Merge new sweeper branch to master
- Loading branch information
Showing
109 changed files
with
16,518 additions
and
5,152 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
package chainntnfs | ||
|
||
import ( | ||
"github.com/btcsuite/btcd/chaincfg/chainhash" | ||
"github.com/btcsuite/btcd/wire" | ||
"github.com/lightningnetwork/lnd/fn" | ||
"github.com/stretchr/testify/mock" | ||
) | ||
|
||
// MockMempoolWatcher is a mock implementation of the MempoolWatcher interface. | ||
// This is used by other subsystems to mock the behavior of the mempool | ||
// watcher. | ||
type MockMempoolWatcher struct { | ||
mock.Mock | ||
} | ||
|
||
// NewMockMempoolWatcher returns a new instance of a mock mempool watcher. | ||
func NewMockMempoolWatcher() *MockMempoolWatcher { | ||
return &MockMempoolWatcher{} | ||
} | ||
|
||
// Compile-time check to ensure MockMempoolWatcher implements MempoolWatcher. | ||
var _ MempoolWatcher = (*MockMempoolWatcher)(nil) | ||
|
||
// SubscribeMempoolSpent implements the MempoolWatcher interface. | ||
func (m *MockMempoolWatcher) SubscribeMempoolSpent( | ||
op wire.OutPoint) (*MempoolSpendEvent, error) { | ||
|
||
args := m.Called(op) | ||
|
||
if args.Get(0) == nil { | ||
return nil, args.Error(1) | ||
} | ||
|
||
return args.Get(0).(*MempoolSpendEvent), args.Error(1) | ||
} | ||
|
||
// CancelMempoolSpendEvent implements the MempoolWatcher interface. | ||
func (m *MockMempoolWatcher) CancelMempoolSpendEvent( | ||
sub *MempoolSpendEvent) { | ||
|
||
m.Called(sub) | ||
} | ||
|
||
// LookupInputMempoolSpend looks up the mempool to find a spending tx which | ||
// spends the given outpoint. | ||
func (m *MockMempoolWatcher) LookupInputMempoolSpend( | ||
op wire.OutPoint) fn.Option[wire.MsgTx] { | ||
|
||
args := m.Called(op) | ||
|
||
return args.Get(0).(fn.Option[wire.MsgTx]) | ||
} | ||
|
||
// MockNotifier is a mock implementation of the ChainNotifier interface. | ||
type MockChainNotifier struct { | ||
mock.Mock | ||
} | ||
|
||
// Compile-time check to ensure MockChainNotifier implements ChainNotifier. | ||
var _ ChainNotifier = (*MockChainNotifier)(nil) | ||
|
||
// RegisterConfirmationsNtfn registers an intent to be notified once txid | ||
// reaches numConfs confirmations. | ||
func (m *MockChainNotifier) RegisterConfirmationsNtfn(txid *chainhash.Hash, | ||
pkScript []byte, numConfs, heightHint uint32, | ||
opts ...NotifierOption) (*ConfirmationEvent, error) { | ||
|
||
args := m.Called(txid, pkScript, numConfs, heightHint) | ||
if args.Get(0) == nil { | ||
return nil, args.Error(1) | ||
} | ||
|
||
return args.Get(0).(*ConfirmationEvent), args.Error(1) | ||
} | ||
|
||
// RegisterSpendNtfn registers an intent to be notified once the target | ||
// outpoint is successfully spent within a transaction. | ||
func (m *MockChainNotifier) RegisterSpendNtfn(outpoint *wire.OutPoint, | ||
pkScript []byte, heightHint uint32) (*SpendEvent, error) { | ||
|
||
args := m.Called(outpoint, pkScript, heightHint) | ||
if args.Get(0) == nil { | ||
return nil, args.Error(1) | ||
} | ||
|
||
return args.Get(0).(*SpendEvent), args.Error(1) | ||
} | ||
|
||
// RegisterBlockEpochNtfn registers an intent to be notified of each new block | ||
// connected to the tip of the main chain. | ||
func (m *MockChainNotifier) RegisterBlockEpochNtfn(epoch *BlockEpoch) ( | ||
*BlockEpochEvent, error) { | ||
|
||
args := m.Called(epoch) | ||
if args.Get(0) == nil { | ||
return nil, args.Error(1) | ||
} | ||
|
||
return args.Get(0).(*BlockEpochEvent), args.Error(1) | ||
} | ||
|
||
// Start the ChainNotifier. Once started, the implementation should be ready, | ||
// and able to receive notification registrations from clients. | ||
func (m *MockChainNotifier) Start() error { | ||
args := m.Called() | ||
|
||
return args.Error(0) | ||
} | ||
|
||
// Started returns true if this instance has been started, and false otherwise. | ||
func (m *MockChainNotifier) Started() bool { | ||
args := m.Called() | ||
|
||
return args.Bool(0) | ||
} | ||
|
||
// Stops the concrete ChainNotifier. | ||
func (m *MockChainNotifier) Stop() error { | ||
args := m.Called() | ||
|
||
return args.Error(0) | ||
} |
Oops, something went wrong.