lnd.xprv/chainntnfs
Olaoluwa Osuntokun ed7eae819a
chainntnfs/btcdnotify: don't error if tx not found for historical conf dispatch
This commit fixes a prior mishandled error when attempting historical
confirmation dispatches. In the prior version of this code fragment, if
the transaction under the spotlight wasn’t found within the mempool, or
already in the chain, then an error would be returned by
b.chainConn.GetRawTransactionVerbose, which would case the function to
exit with an error. This behavior was incorrect, as during transaction
re-broadcasts, it was possible for transaction not yet to be a member
of either set.

We fix this issue by ensuring that we treat the JSON error code as a
benign error and continue with the notification registration.
2017-09-12 17:06:58 +02:00
..
btcdnotify chainntnfs/btcdnotify: don't error if tx not found for historical conf dispatch 2017-09-12 17:06:58 +02:00
neutrinonotify multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -07:00
interface_test.go multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -07:00
interface.go lnwallet: use new ChainNotifier API, typo fixes 2017-05-11 15:21:05 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00

chainntnfs

Build Status MIT licensed GoDoc

The chainntnfs package implements a set of interfaces which allow callers to receive notifications in response to specific on-chain events. The set of notifications available include:

  • Notifications for each new block connected to the current best chain.
  • Notifications once a txid has reached a specified number of confirmations.
  • Notifications once a target outpoint (txid:index) has been spent.

These notifications are used within lnd in order to properly handle the workflows for: channel funding, cooperative channel closures, forced channel closures, channel contract breaches, sweeping time-locked outputs, and finally pruning the channel graph.

This package is intentionally general enough to be applicable outside the specific use cases within lnd outlined above. The current sole concrete implementation of the ChainNotifier interface depends on btcd.

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/chainntnfs