@@ -236,18 +236,31 @@ fn format_keys(keys: &Keys) -> String {
236236 format ! ( "sk: {}, pk: {}" , keys. 0 . display_secret( ) , keys. 1 , )
237237}
238238
239- #[ derive( Clone , Debug , Display , NetworkDecode , NetworkEncode ) ]
239+ #[ cfg_attr( feature = "serde" , serde_as) ]
240+ #[ derive( Clone , Debug , Display , Eq , PartialEq , NetworkDecode , NetworkEncode ) ]
241+ #[ cfg_attr(
242+ feature = "serde" ,
243+ derive( Serialize , Deserialize ) ,
244+ serde( crate = "serde_crate" )
245+ ) ]
240246pub enum FundingInfo {
241- #[ display( "bitcoin(..) " ) ]
247+ #[ display( "{0} " ) ]
242248 Bitcoin ( BitcoinFundingInfo ) ,
243- #[ display( "monero(..) " ) ]
249+ #[ display( "{0} " ) ]
244250 Monero ( MoneroFundingInfo ) ,
245251}
246252
247- #[ derive( Clone , Debug , NetworkDecode , NetworkEncode ) ]
253+ #[ cfg_attr( feature = "serde" , serde_as) ]
254+ #[ derive( Clone , Debug , Eq , PartialEq , NetworkDecode , NetworkEncode ) ]
255+ #[ cfg_attr(
256+ feature = "serde" ,
257+ derive( Serialize , Deserialize ) ,
258+ serde( crate = "serde_crate" )
259+ ) ]
248260pub struct BitcoinFundingInfo {
249261 pub swap_id : SwapId ,
250262 pub address : bitcoin:: Address ,
263+ #[ serde( with = "bitcoin::util::amount::serde::as_btc" ) ]
251264 pub amount : bitcoin:: Amount ,
252265}
253266
@@ -274,9 +287,16 @@ impl fmt::Display for BitcoinFundingInfo {
274287 }
275288}
276289
277- #[ derive( Clone , Debug , NetworkEncode , NetworkDecode ) ]
290+ #[ cfg_attr( feature = "serde" , serde_as) ]
291+ #[ derive( Clone , Debug , Eq , PartialEq , NetworkEncode , NetworkDecode ) ]
292+ #[ cfg_attr(
293+ feature = "serde" ,
294+ derive( Serialize , Deserialize ) ,
295+ serde( crate = "serde_crate" )
296+ ) ]
278297pub struct MoneroFundingInfo {
279298 pub swap_id : SwapId ,
299+ #[ serde( with = "monero::util::amount::serde::as_xmr" ) ]
280300 pub amount : monero:: Amount ,
281301 pub address : monero:: Address ,
282302}
0 commit comments