@@ -44,10 +44,6 @@ pub struct LSPS2ServiceConfig {
4444 ///
4545 /// Note: If this changes then old promises given out will be considered invalid.
4646 pub promise_secret : [ u8 ; 32 ] ,
47- /// The minimum payment size you are willing to accept.
48- pub min_payment_size_msat : u64 ,
49- /// The maximum payment size you are willing to accept.
50- pub max_payment_size_msat : u64 ,
5147}
5248
5349#[ derive( Copy , Clone , PartialEq , Eq , Debug ) ]
@@ -69,6 +65,8 @@ enum OutboundJITChannelState {
6965 AwaitingPayment {
7066 min_fee_msat : u64 ,
7167 proportional_fee : u32 ,
68+ min_payment_size_msat : u64 ,
69+ max_payment_size_msat : u64 ,
7270 htlcs : Vec < InterceptedHTLC > ,
7371 payment_size_msat : Option < u64 > ,
7472 } ,
@@ -88,18 +86,20 @@ impl OutboundJITChannelState {
8886 OutboundJITChannelState :: AwaitingPayment {
8987 min_fee_msat : opening_fee_params. min_fee_msat ,
9088 proportional_fee : opening_fee_params. proportional ,
89+ min_payment_size_msat : opening_fee_params. min_payment_size_msat ,
90+ max_payment_size_msat : opening_fee_params. max_payment_size_msat ,
9191 htlcs : vec ! [ ] ,
9292 payment_size_msat,
9393 }
9494 }
9595
96- fn htlc_intercepted (
97- & self , htlc : InterceptedHTLC , config : & LSPS2ServiceConfig ,
98- ) -> Result < Self , ChannelStateError > {
96+ fn htlc_intercepted ( & self , htlc : InterceptedHTLC ) -> Result < Self , ChannelStateError > {
9997 match self {
10098 OutboundJITChannelState :: AwaitingPayment {
10199 htlcs,
102100 payment_size_msat,
101+ min_payment_size_msat,
102+ max_payment_size_msat,
103103 min_fee_msat,
104104 proportional_fee,
105105 } => {
@@ -122,14 +122,14 @@ impl OutboundJITChannelState {
122122 ( total_expected_outbound_amount_msat, false )
123123 } ;
124124
125- if expected_payment_size_msat < config . min_payment_size_msat
126- || expected_payment_size_msat > config . max_payment_size_msat
125+ if expected_payment_size_msat < * min_payment_size_msat
126+ || expected_payment_size_msat > * max_payment_size_msat
127127 {
128128 return Err ( ChannelStateError (
129129 format ! ( "Payment size violates our limits: expected_payment_size_msat = {}, min_payment_size_msat = {}, max_payment_size_msat = {}" ,
130130 expected_payment_size_msat,
131- config . min_payment_size_msat,
132- config . max_payment_size_msat
131+ min_payment_size_msat,
132+ max_payment_size_msat
133133 ) ) ) ;
134134 }
135135
@@ -164,6 +164,8 @@ impl OutboundJITChannelState {
164164 proportional_fee : * proportional_fee,
165165 htlcs,
166166 payment_size_msat : * payment_size_msat,
167+ min_payment_size_msat : * min_payment_size_msat,
168+ max_payment_size_msat : * max_payment_size_msat,
167169 } )
168170 } else {
169171 Err ( ChannelStateError (
@@ -211,9 +213,9 @@ impl OutboundJITChannel {
211213 }
212214
213215 fn htlc_intercepted (
214- & mut self , htlc : InterceptedHTLC , config : & LSPS2ServiceConfig ,
216+ & mut self , htlc : InterceptedHTLC ,
215217 ) -> Result < Option < ( u64 , u64 ) > , LightningError > {
216- self . state = self . state . htlc_intercepted ( htlc, config ) ?;
218+ self . state = self . state . htlc_intercepted ( htlc) ?;
217219
218220 match & self . state {
219221 OutboundJITChannelState :: AwaitingPayment { .. } => {
@@ -370,8 +372,6 @@ where
370372 param. into_opening_fee_params ( & self . config . promise_secret )
371373 } )
372374 . collect ( ) ,
373- min_payment_size_msat : self . config . min_payment_size_msat ,
374- max_payment_size_msat : self . config . max_payment_size_msat ,
375375 } ) ;
376376 self . enqueue_response ( counterparty_node_id, request_id, response) ;
377377 Ok ( ( ) )
@@ -472,7 +472,7 @@ where
472472 peer_state. outbound_channels_by_intercept_scid . get_mut ( & intercept_scid)
473473 {
474474 let htlc = InterceptedHTLC { intercept_id, expected_outbound_amount_msat } ;
475- match jit_channel. htlc_intercepted ( htlc, & self . config ) {
475+ match jit_channel. htlc_intercepted ( htlc) {
476476 Ok ( Some ( ( opening_fee_msat, amt_to_forward_msat) ) ) => {
477477 self . enqueue_event ( Event :: LSPS2Service (
478478 LSPS2ServiceEvent :: OpenChannel {
@@ -616,7 +616,7 @@ where
616616 & self , request_id : RequestId , counterparty_node_id : & PublicKey , params : BuyRequest ,
617617 ) -> Result < ( ) , LightningError > {
618618 if let Some ( payment_size_msat) = params. payment_size_msat {
619- if payment_size_msat < self . config . min_payment_size_msat {
619+ if payment_size_msat < params . opening_fee_params . min_payment_size_msat {
620620 self . enqueue_response (
621621 counterparty_node_id,
622622 request_id,
@@ -633,7 +633,7 @@ where
633633 } ) ;
634634 }
635635
636- if payment_size_msat > self . config . max_payment_size_msat {
636+ if payment_size_msat > params . opening_fee_params . max_payment_size_msat {
637637 self . enqueue_response (
638638 counterparty_node_id,
639639 request_id,
0 commit comments