@@ -7,7 +7,6 @@ use crate::lsps0::msgs::{
77 LSPS0_LISTPROTOCOLS_METHOD_NAME ,
88} ;
99
10- #[ cfg( lsps1) ]
1110use crate :: lsps1:: msgs:: {
1211 LSPS1Message , LSPS1Request , LSPS1Response , LSPS1_CREATE_ORDER_METHOD_NAME ,
1312 LSPS1_GET_INFO_METHOD_NAME , LSPS1_GET_ORDER_METHOD_NAME ,
@@ -47,11 +46,8 @@ pub(crate) const _LSPS0_CLIENT_REJECTED_ERROR_CODE: i32 = 001;
4746#[ derive( Copy , Clone , Debug , PartialEq , Eq ) ]
4847pub ( crate ) enum LSPSMethod {
4948 LSPS0ListProtocols ,
50- #[ cfg( lsps1) ]
5149 LSPS1GetInfo ,
52- #[ cfg( lsps1) ]
5350 LSPS1GetOrder ,
54- #[ cfg( lsps1) ]
5551 LSPS1CreateOrder ,
5652 LSPS2GetInfo ,
5753 LSPS2Buy ,
@@ -62,11 +58,8 @@ impl FromStr for LSPSMethod {
6258 fn from_str ( s : & str ) -> Result < Self , Self :: Err > {
6359 match s {
6460 LSPS0_LISTPROTOCOLS_METHOD_NAME => Ok ( Self :: LSPS0ListProtocols ) ,
65- #[ cfg( lsps1) ]
6661 LSPS1_GET_INFO_METHOD_NAME => Ok ( Self :: LSPS1GetInfo ) ,
67- #[ cfg( lsps1) ]
6862 LSPS1_CREATE_ORDER_METHOD_NAME => Ok ( Self :: LSPS1CreateOrder ) ,
69- #[ cfg( lsps1) ]
7063 LSPS1_GET_ORDER_METHOD_NAME => Ok ( Self :: LSPS1GetOrder ) ,
7164 LSPS2_GET_INFO_METHOD_NAME => Ok ( Self :: LSPS2GetInfo ) ,
7265 LSPS2_BUY_METHOD_NAME => Ok ( Self :: LSPS2Buy ) ,
@@ -79,11 +72,8 @@ impl Display for LSPSMethod {
7972 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
8073 let s = match self {
8174 Self :: LSPS0ListProtocols => LSPS0_LISTPROTOCOLS_METHOD_NAME ,
82- #[ cfg( lsps1) ]
8375 Self :: LSPS1GetInfo => LSPS1_GET_INFO_METHOD_NAME ,
84- #[ cfg( lsps1) ]
8576 Self :: LSPS1CreateOrder => LSPS1_CREATE_ORDER_METHOD_NAME ,
86- #[ cfg( lsps1) ]
8777 Self :: LSPS1GetOrder => LSPS1_GET_ORDER_METHOD_NAME ,
8878 Self :: LSPS2GetInfo => LSPS2_GET_INFO_METHOD_NAME ,
8979 Self :: LSPS2Buy => LSPS2_BUY_METHOD_NAME ,
@@ -100,7 +90,6 @@ impl From<&LSPS0Request> for LSPSMethod {
10090 }
10191}
10292
103- #[ cfg( lsps1) ]
10493impl From < & LSPS1Request > for LSPSMethod {
10594 fn from ( value : & LSPS1Request ) -> Self {
10695 match value {
@@ -216,7 +205,6 @@ pub enum LSPSMessage {
216205 /// An LSPS0 message.
217206 LSPS0 ( LSPS0Message ) ,
218207 /// An LSPS1 message.
219- #[ cfg( lsps1) ]
220208 LSPS1 ( LSPS1Message ) ,
221209 /// An LSPS2 message.
222210 LSPS2 ( LSPS2Message ) ,
@@ -241,7 +229,6 @@ impl LSPSMessage {
241229 LSPSMessage :: LSPS0 ( LSPS0Message :: Request ( request_id, request) ) => {
242230 Some ( ( RequestId ( request_id. 0 . clone ( ) ) , request. into ( ) ) )
243231 } ,
244- #[ cfg( lsps1) ]
245232 LSPSMessage :: LSPS1 ( LSPS1Message :: Request ( request_id, request) ) => {
246233 Some ( ( RequestId ( request_id. 0 . clone ( ) ) , request. into ( ) ) )
247234 } ,
@@ -287,7 +274,6 @@ impl Serialize for LSPSMessage {
287274 } ,
288275 }
289276 } ,
290- #[ cfg( lsps1) ]
291277 LSPSMessage :: LSPS1 ( LSPS1Message :: Request ( request_id, request) ) => {
292278 jsonrpc_object. serialize_field ( JSONRPC_ID_FIELD_KEY , & request_id. 0 ) ?;
293279 jsonrpc_object
@@ -305,7 +291,6 @@ impl Serialize for LSPSMessage {
305291 } ,
306292 }
307293 } ,
308- #[ cfg( lsps1) ]
309294 LSPSMessage :: LSPS1 ( LSPS1Message :: Response ( request_id, response) ) => {
310295 jsonrpc_object. serialize_field ( JSONRPC_ID_FIELD_KEY , & request_id. 0 ) ?;
311296
@@ -442,7 +427,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
442427 id,
443428 LSPS0Request :: ListProtocols ( ListProtocolsRequest { } ) ,
444429 ) ) ) ,
445- #[ cfg( lsps1) ]
446430 LSPSMethod :: LSPS1GetInfo => {
447431 let request = serde_json:: from_value ( params. unwrap_or ( json ! ( { } ) ) )
448432 . map_err ( de:: Error :: custom) ?;
@@ -451,7 +435,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
451435 LSPS1Request :: GetInfo ( request) ,
452436 ) ) )
453437 } ,
454- #[ cfg( lsps1) ]
455438 LSPSMethod :: LSPS1CreateOrder => {
456439 let request = serde_json:: from_value ( params. unwrap_or ( json ! ( { } ) ) )
457440 . map_err ( de:: Error :: custom) ?;
@@ -460,7 +443,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
460443 LSPS1Request :: CreateOrder ( request) ,
461444 ) ) )
462445 } ,
463- #[ cfg( lsps1) ]
464446 LSPSMethod :: LSPS1GetOrder => {
465447 let request = serde_json:: from_value ( params. unwrap_or ( json ! ( { } ) ) )
466448 . map_err ( de:: Error :: custom) ?;
@@ -502,7 +484,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
502484 Err ( de:: Error :: custom ( "Received invalid JSON-RPC object: one of method, result, or error required" ) )
503485 }
504486 } ,
505- #[ cfg( lsps1) ]
506487 LSPSMethod :: LSPS1GetInfo => {
507488 if let Some ( error) = error {
508489 Ok ( LSPSMessage :: LSPS1 ( LSPS1Message :: Response (
@@ -520,7 +501,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
520501 Err ( de:: Error :: custom ( "Received invalid JSON-RPC object: one of method, result, or error required" ) )
521502 }
522503 } ,
523- #[ cfg( lsps1) ]
524504 LSPSMethod :: LSPS1CreateOrder => {
525505 if let Some ( error) = error {
526506 Ok ( LSPSMessage :: LSPS1 ( LSPS1Message :: Response (
@@ -538,7 +518,6 @@ impl<'de, 'a> Visitor<'de> for LSPSMessageVisitor<'a> {
538518 Err ( de:: Error :: custom ( "Received invalid JSON-RPC object: one of method, result, or error required" ) )
539519 }
540520 } ,
541- #[ cfg( lsps1) ]
542521 LSPSMethod :: LSPS1GetOrder => {
543522 if let Some ( error) = error {
544523 Ok ( LSPSMessage :: LSPS1 ( LSPS1Message :: Response (
@@ -654,7 +633,63 @@ pub(crate) mod string_amount_option {
654633 }
655634}
656635
657- #[ cfg( lsps1) ]
636+ pub ( crate ) mod unchecked_address {
637+ use crate :: prelude:: { String , ToString } ;
638+ use bitcoin:: Address ;
639+ use core:: str:: FromStr ;
640+ use serde:: de:: Unexpected ;
641+ use serde:: { Deserialize , Deserializer , Serializer } ;
642+
643+ pub ( crate ) fn serialize < S > ( x : & Address , s : S ) -> Result < S :: Ok , S :: Error >
644+ where
645+ S : Serializer ,
646+ {
647+ s. serialize_str ( & x. to_string ( ) )
648+ }
649+
650+ pub ( crate ) fn deserialize < ' de , D > ( deserializer : D ) -> Result < Address , D :: Error >
651+ where
652+ D : Deserializer < ' de > ,
653+ {
654+ let buf = String :: deserialize ( deserializer) ?;
655+
656+ let parsed_addr = Address :: from_str ( & buf) . map_err ( |_| {
657+ serde:: de:: Error :: invalid_value ( Unexpected :: Str ( & buf) , & "invalid address string" )
658+ } ) ?;
659+ Ok ( parsed_addr. assume_checked ( ) )
660+ }
661+ }
662+
663+ pub ( crate ) mod unchecked_address_option {
664+ use crate :: prelude:: { String , ToString } ;
665+ use bitcoin:: Address ;
666+ use core:: str:: FromStr ;
667+ use serde:: de:: Unexpected ;
668+ use serde:: { Deserialize , Deserializer , Serialize , Serializer } ;
669+
670+ pub ( crate ) fn serialize < S > ( x : & Option < Address > , s : S ) -> Result < S :: Ok , S :: Error >
671+ where
672+ S : Serializer ,
673+ {
674+ let v = x. as_ref ( ) . map ( |v| v. to_string ( ) ) ;
675+ Option :: < String > :: serialize ( & v, s)
676+ }
677+
678+ pub ( crate ) fn deserialize < ' de , D > ( deserializer : D ) -> Result < Option < bitcoin:: Address > , D :: Error >
679+ where
680+ D : Deserializer < ' de > ,
681+ {
682+ if let Some ( buf) = Option :: < String > :: deserialize ( deserializer) ? {
683+ let val = Address :: from_str ( & buf) . map_err ( |_| {
684+ serde:: de:: Error :: invalid_value ( Unexpected :: Str ( & buf) , & "invalid address string" )
685+ } ) ?;
686+ Ok ( Some ( val. assume_checked ( ) ) )
687+ } else {
688+ Ok ( None )
689+ }
690+ }
691+ }
692+
658693pub ( crate ) mod u32_fee_rate {
659694 use bitcoin:: FeeRate ;
660695 use serde:: { Deserialize , Deserializer , Serializer } ;
0 commit comments