clboss/Boss/Mod/XMoveFunds
Ken Sedgwick 39ac3a7dc6
Some checks failed
Code Base Sanity Check / tests (push) Has been cancelled
Code Base Sanity Check / coverage (push) Has been cancelled
Code Base Sanity Check / build-clang (push) Has been cancelled
XMoveFunds: take the return channel from the translated askrene response
The reviewed askrene circular patch translates the final hop of every
circular route back to real terms before returning: node_id_out is
our own id and short_channel_id_dir names the actual return channel
the route was priced against.  With parallel channels to the same
fill peer, only askrene knows which one it chose -- matching by peer
could pick the wrong parallel channel, mis-keying the plan and the
per-channel bookkeeping.

Trust the response instead of reconstructing it: delete
find_fill_scid (guess-by-peer) and build_sendpay_route's final-hop
rewrite, so every hop maps 1:1 into sendpay format.  In their place,
validate the final hop before sending: node_id_out must be our own
id (an untranslated hop means this clboss is paired with a CLN
lineage older than the reviewed patch) and the return channel must
be among dest_scids (structurally guaranteed by the transient masks;
refusing catches the impossible).  The channels listing is no longer
needed at execute time, so do_execute drops the parameter.
2026-08-04 11:02:12 -07:00
..
Claimer.cpp XMoveFunds: add the clboss-xmovefunds circular-rebalance primitive 2026-08-04 11:01:58 -07:00
Claimer.hpp XMoveFunds: add the clboss-xmovefunds circular-rebalance primitive 2026-08-04 11:01:58 -07:00
Main.cpp XMoveFunds: take the return channel from the translated askrene response 2026-08-04 11:02:12 -07:00
Main.hpp XMoveFunds: add the clboss-xmovefunds circular-rebalance primitive 2026-08-04 11:01:58 -07:00