Skip to content

Commit

Permalink
lnwallet: make BlockChainIO.GetUTXO take cancel chan
Browse files Browse the repository at this point in the history
Use quit channels as cancel chan for call to GetUTXO.
  • Loading branch information
halseth committed May 9, 2019
1 parent beb5d14 commit 10070ec
Show file tree
Hide file tree
Showing 8 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion contractcourt/channel_arbitrator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func (*mockChainIO) GetBestBlock() (*chainhash.Hash, int32, error) {
}

func (*mockChainIO) GetUtxo(op *wire.OutPoint, _ []byte,
heightHint uint32) (*wire.TxOut, error) {
heightHint uint32, _ <-chan struct{}) (*wire.TxOut, error) {
return nil, nil
}

Expand Down
2 changes: 1 addition & 1 deletion lnwallet/btcwallet/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func (b *BtcWallet) GetBestBlock() (*chainhash.Hash, int32, error) {
//
// This method is a part of the lnwallet.BlockChainIO interface.
func (b *BtcWallet) GetUtxo(op *wire.OutPoint, pkScript []byte,
heightHint uint32) (*wire.TxOut, error) {
heightHint uint32, cancel <-chan struct{}) (*wire.TxOut, error) {

switch backend := b.chain.(type) {

Expand Down
6 changes: 4 additions & 2 deletions lnwallet/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,10 @@ type BlockChainIO interface {
// script that the outpoint creates. In the case that the output is in
// the UTXO set, then the output corresponding to that output is
// returned. Otherwise, a non-nil error will be returned.
GetUtxo(op *wire.OutPoint, pkScript []byte,
heightHint uint32) (*wire.TxOut, error)
// As for some backends this call can initiate a rescan, the passed
// cancel channel can be closed to abort the call.
GetUtxo(op *wire.OutPoint, pkScript []byte, heightHint uint32,
cancel <-chan struct{}) (*wire.TxOut, error)

// GetBlockHash returns the hash of the block in the best blockchain
// at the given height.
Expand Down
2 changes: 1 addition & 1 deletion lnwallet/wallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,7 @@ func (l *LightningWallet) handleFundingCounterPartySigs(msg *addCounterPartySigs
}
output, err := l.Cfg.ChainIO.GetUtxo(
&txin.PreviousOutPoint,
pkScript, 0,
pkScript, 0, l.quit,
)
if output == nil {
msg.err <- fmt.Errorf("input to funding tx "+
Expand Down
2 changes: 1 addition & 1 deletion mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ func (m *mockChainIO) GetBestBlock() (*chainhash.Hash, int32, error) {
}

func (*mockChainIO) GetUtxo(op *wire.OutPoint, _ []byte,
heightHint uint32) (*wire.TxOut, error) {
heightHint uint32, _ <-chan struct{}) (*wire.TxOut, error) {
return nil, nil
}

Expand Down
3 changes: 2 additions & 1 deletion routing/notifications_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@ func (m *mockChain) addUtxo(op wire.OutPoint, out *wire.TxOut) {
m.utxos[op] = *out
m.Unlock()
}
func (m *mockChain) GetUtxo(op *wire.OutPoint, _ []byte, _ uint32) (*wire.TxOut, error) {
func (m *mockChain) GetUtxo(op *wire.OutPoint, _ []byte, _ uint32,
_ <-chan struct{}) (*wire.TxOut, error) {
m.RLock()
defer m.RUnlock()

Expand Down
1 change: 1 addition & 0 deletions routing/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -1113,6 +1113,7 @@ func (r *ChannelRouter) processUpdate(msg interface{}) error {
// been closed so we'll ignore it.
chanUtxo, err := r.cfg.Chain.GetUtxo(
fundingPoint, fundingPkScript, channelID.BlockHeight,
r.quit,
)
if err != nil {
r.rejectMtx.Lock()
Expand Down
2 changes: 1 addition & 1 deletion sweep/test_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ func (m *mockChainIO) GetBestBlock() (*chainhash.Hash, int32, error) {
}

func (m *mockChainIO) GetUtxo(op *wire.OutPoint, pkScript []byte,
heightHint uint32) (*wire.TxOut, error) {
heightHint uint32, _ <-chan struct{}) (*wire.TxOut, error) {

return nil, nil
}
Expand Down

0 comments on commit 10070ec

Please sign in to comment.