Skip to content

andrewtoth/listmempoolfunds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

listmempoolfunds

This plugin adds the ability to track unconfirmed wallet deposits. It introduces a new method listmempoolfunds that has the same signature and response format as listfunds, except it will also return unconfirmed received outputs.

How does listmempoolfunds work

It leverages Bitcoin Core's watchonly descriptor wallet and clightning's hsmtool. By creating a new descriptor wallet and importing the node's xpubs, Bitcoin Core will track all incoming payments. Since bitcoind handles tracking the payments in the mempool, the plugin can query bitcoind for any new payments that aren't present in listfunds. These new payments can be appended to the listfunds response and returned, and it appears just like listfunds is tracking unconfirmed deposits!

Dependencies

This plugin depends on having RPC access to a running Bitcoin Core v0.21.0 or higher. It also needs the descriptor wallet compiled in and not disabled (disablewallet=0), and it needs to not be running in blocks-only mode (blocksonly=0). It can be running in pruned mode (prune=<n>), but you will need to have blocks back to at least where the first deposit to the node was made. After it has imported the descriptors and rescanned, older blocks can be pruned.

Installation

Run pip3 install --user -r -requirements.txt and include the listmempoolfunds.py file as a plugin via instructions here.

Set the listmempoolfunds-rpcuser and listmempoolfunds-rpcpassword options to the credentials of your bitcoind instance. You must also set the listmempoolfunds-descriptor option twice in order to import the proper descriptors. If you are using the default locations, this can be done with the following command:

$ ./tools/hsmtool dumponchaindescriptors ~/.lightning/bitcoin/hsm_secret | xargs -n1 printf "listmempoolfunds-descriptor=%s\n" >> ~/.lightning/config

On startup, the plugin will check if the wallet exists and if it is loaded. If not, it will create the wallet, import the descriptors, and perform a rescan. On mainnet the rescan can take several hours, but will only happen the first time.

About

CoreLightning plugin to track unconfirmed funds

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages