A multi channel funding, multi target withdraw plugin for c-lightning.
0.7.1 release of clightning allows opening of multiple channels with a single transaction. This plugin adds RPC commands to take advantage of this. Also, withdrawing funds to multiple locations is a very similar process, except you know the destinations beforehand and you skip the channel part, so it seemed logical to add as well.
Currently there are 2 new RPC commands for channel funding using either bitcoin core wallet or lightning internal wallet
fund_multi
and connect_fund_multi
fund_multi [{"id": "02fc...", "satoshi": 20000, "announce", true}, {...}, ...]
connect_fund_multi
adds "host"
and "port"
parameters to the above
For use with an external wallet
fund_multi_start
same format as fund_multi
This will return the addresses to be used for transaction creation in external wallet. Once the transaction is created and signed with eternal wallet call
fund_multi_complete tx
where tx is the hex string of the signed transaction.
This will line up the addresses and index in the transaction and complete channel funding (internal call to fundchannel_complete
)
and broadcast the transaction
Also one command has been added for multi destination withdraw
withdraw_multi [{"destination": ADDRESS, "satoshi": n}...]
provide an array of objects with destination
and satoshi
values
There is one option that can be passed to the lightningd command line. multi-wallet
. --multi-wallet=bitcoin
will use the wallet from the bitcoin core node. Omitting this option will uset the internal c-lightning wallet, or you can be explicit with --multi-wallet=internal
The bitcoin core node is used for broadcasting transactions so it must be accessible even if you use clightning internal wallet.
TODO:
- Allow to set
feerate
andminconf
onwithdraw_multi
to be consistent withwithdraw
- Support for bitcoin cookie auth?