File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed
Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -357,6 +357,23 @@ where
357357 let created_at = LSPSDateTime :: new_from_duration_since_epoch (
358358 self . time_provider . duration_since_epoch ( ) ,
359359 ) ;
360+
361+ if payment_details. bolt11 . is_none ( )
362+ && payment_details. bolt12 . is_none ( )
363+ && payment_details. onchain . is_none ( )
364+ {
365+ let err = format ! ( "At least one payment option must be provided" ) ;
366+ return Err ( APIError :: APIMisuseError { err } ) ;
367+ }
368+
369+ if params. refund_onchain_address . is_none ( )
370+ && payment_details. onchain . is_some ( )
371+ {
372+ // bLIP-51: 'LSP MUST disable on-chain payments if the client omits this field.'
373+ let err = format ! ( "Onchain payments must be disabled if no refund_onchain_address is set." ) ;
374+ return Err ( APIError :: APIMisuseError { err } ) ;
375+ }
376+
360377 let order = peer_state_lock. new_order (
361378 order_id. clone ( ) ,
362379 params. order ,
Original file line number Diff line number Diff line change @@ -145,8 +145,15 @@ fn lsps1_happy_path() {
145145 announce_channel : true ,
146146 } ;
147147
148- let _create_order_id =
149- client_handler. create_order ( & service_node_id, order_params. clone ( ) , None ) ;
148+ let refund_onchain_address =
149+ Address :: from_str ( "bc1p5uvtaxzkjwvey2tfy49k5vtqfpjmrgm09cvs88ezyy8h2zv7jhas9tu4yr" )
150+ . unwrap ( )
151+ . assume_checked ( ) ;
152+ let _create_order_id = client_handler. create_order (
153+ & service_node_id,
154+ order_params. clone ( ) ,
155+ Some ( refund_onchain_address) ,
156+ ) ;
150157 let create_order = get_lsps_message ! ( client_node, service_node_id) ;
151158
152159 service_node. liquidity_manager . handle_custom_message ( create_order, client_node_id) . unwrap ( ) ;
You can’t perform that action at this time.
0 commit comments