diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000000..3405ad4896 --- /dev/null +++ b/TODO.md @@ -0,0 +1,29 @@ +# Liquidity Ads + +## Tasks + +- add fields to open channel API to request liquidity + - add explicit option flag to specify what to do if the remote doesn't fund back + - validate that the leasor doesn't cheat +- add support for responding to an `open_channel2` that requests funds: + - ensure we don't raise our relay fees above what was negotiated while the lease is active + - disallow mutual close and force-close commands during the lease + - disallow splice-out during the lease + - change the format of commit txs +- when buying liquidity: + - when doing an RBF, must pay for the lease `fundingWeight` at the new feerate + - verify our peer doesn't raise their relay fees above what was negotiated: if they do, send a `warning` and log it + - ignore remote `shutdown` messages? Send a `warning` and log? +- when the lease expires, "clean up" commitment tx? + - probably requires an `end_lease` message? +- lease renewal mechanism: + - maybe unnecessary, it's just a splice that uses the `request_funds` tlv? + +## Liquidity ads plugin + +Implement the business logic that decides how much to contribute when accepting a `request_funds` in a plugin. +Requires validation of the following fields from `open_channel2`: + +- feerate -> it shouldn't be too high unless the buyer is paying for our inputs +- lockTime -> must not be too far away in the future and must match the lease start +- remote amount must allow paying the lease fees and the commit tx fees