Commit 5672a5c
Receive BOLT12 payments through LSPS2 JIT channels
Wrap the default router with the LSPS2-aware `LSPS2Router` and wire it
to the LSPS2 client handler, so JIT-channel blinded payment paths are
injected into BOLT12 invoices based on the latest invoice parameters
negotiated with our configured LSPs.
If liquidity sources are configured, we negotiate the parameters with
the cheapest LSP once at startup. From then on they simply apply to all
BOLT12 receives, i.e., any offer created via the regular receive APIs
will have JIT-channel paths injected into its invoices, and we force a
refresh of any static invoices stored with a static invoice server so
they include the new paths, too. As the router encodes the used
parameters in the paths' payment metadata, they are available again
upon receipt and used to verify any skimmed channel opening fee against
what was negotiated.
Parameters previously negotiated with LSPs that are no longer
configured are wiped early during node building, before the node could
create any invoices or connect to peers.
The BOLT11 JIT receive flows are refactored to share the same
negotiation logic.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 76f59ae commit 5672a5c
5 files changed
Lines changed: 290 additions & 47 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| |||
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
73 | | - | |
| 74 | + | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
| |||
1762 | 1763 | | |
1763 | 1764 | | |
1764 | 1765 | | |
1765 | | - | |
| 1766 | + | |
1766 | 1767 | | |
1767 | 1768 | | |
1768 | 1769 | | |
1769 | 1770 | | |
1770 | 1771 | | |
1771 | | - | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
1772 | 1777 | | |
1773 | 1778 | | |
1774 | 1779 | | |
| |||
1993 | 1998 | | |
1994 | 1999 | | |
1995 | 2000 | | |
| 2001 | + | |
| 2002 | + | |
| 2003 | + | |
| 2004 | + | |
| 2005 | + | |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
1996 | 2045 | | |
1997 | 2046 | | |
1998 | 2047 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
33 | 35 | | |
34 | 36 | | |
35 | 37 | | |
| |||
611 | 613 | | |
612 | 614 | | |
613 | 615 | | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
614 | 631 | | |
615 | 632 | | |
616 | 633 | | |
| |||
798 | 815 | | |
799 | 816 | | |
800 | 817 | | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
801 | 824 | | |
802 | 825 | | |
803 | 826 | | |
804 | 827 | | |
805 | 828 | | |
806 | 829 | | |
807 | | - | |
| 830 | + | |
808 | 831 | | |
809 | 832 | | |
810 | 833 | | |
| |||
828 | 851 | | |
829 | 852 | | |
830 | 853 | | |
831 | | - | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
832 | 857 | | |
833 | 858 | | |
834 | 859 | | |
835 | 860 | | |
836 | 861 | | |
837 | | - | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
838 | 867 | | |
839 | 868 | | |
840 | 869 | | |
841 | 870 | | |
842 | | - | |
| 871 | + | |
843 | 872 | | |
844 | 873 | | |
845 | 874 | | |
| |||
1948 | 1977 | | |
1949 | 1978 | | |
1950 | 1979 | | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
| 2003 | + | |
| 2004 | + | |
| 2005 | + | |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
1951 | 2046 | | |
1952 | 2047 | | |
1953 | 2048 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
746 | 746 | | |
747 | 747 | | |
748 | 748 | | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
749 | 792 | | |
750 | 793 | | |
751 | 794 | | |
| |||
0 commit comments