diff --git a/chainntnfs/bitcoindnotify/bitcoind.go b/chainntnfs/bitcoindnotify/bitcoind.go index 1dae68995..230443f61 100644 --- a/chainntnfs/bitcoindnotify/bitcoind.go +++ b/chainntnfs/bitcoindnotify/bitcoind.go @@ -833,8 +833,12 @@ func (b *BitcoindNotifier) RegisterSpendNtfn(outpoint *wire.OutPoint, return nil, err } - if uint32(blockHeight) > ntfn.HistoricalDispatch.StartHeight { - ntfn.HistoricalDispatch.StartHeight = uint32(blockHeight) + spentHeight := uint32(blockHeight) + chainntnfs.Log.Debugf("Outpoint(%v) has spent at height %v", + outpoint, spentHeight) + + if spentHeight > ntfn.HistoricalDispatch.StartHeight { + ntfn.HistoricalDispatch.StartHeight = spentHeight } } diff --git a/chainntnfs/btcdnotify/btcd.go b/chainntnfs/btcdnotify/btcd.go index 3c7843133..abe9f7d22 100644 --- a/chainntnfs/btcdnotify/btcd.go +++ b/chainntnfs/btcdnotify/btcd.go @@ -933,15 +933,21 @@ func (b *BtcdNotifier) RegisterSpendNtfn(outpoint *wire.OutPoint, "block %v: %v", blockHash, err) } - if uint32(blockHeader.Height) > ntfn.HistoricalDispatch.StartHeight { + spentHeight := uint32(blockHeader.Height) + chainntnfs.Log.Debugf("Outpoint(%v) has spent at height %v", + outpoint, spentHeight) + + if spentHeight > ntfn.HistoricalDispatch.StartHeight { startHash, err = b.chainConn.GetBlockHash( - int64(blockHeader.Height), + int64(spentHeight), ) if err != nil { return nil, fmt.Errorf("unable to get block "+ "hash for height %d: %v", blockHeader.Height, err) } + + ntfn.HistoricalDispatch.StartHeight = spentHeight } }