@@ -224,18 +224,31 @@ fn format_keys(keys: &Keys) -> String {
224224 format ! ( "sk: {}, pk: {}" , keys. 0 . display_secret( ) , keys. 1 , )
225225}
226226
227- #[ derive( Clone , Debug , Display , NetworkDecode , NetworkEncode ) ]
227+ #[ cfg_attr( feature = "serde" , serde_as) ]
228+ #[ derive( Clone , Debug , Display , Eq , PartialEq , NetworkDecode , NetworkEncode ) ]
229+ #[ cfg_attr(
230+ feature = "serde" ,
231+ derive( Serialize , Deserialize ) ,
232+ serde( crate = "serde_crate" )
233+ ) ]
228234pub enum FundingInfo {
229- #[ display( "bitcoin(..) " ) ]
235+ #[ display( "{0} " ) ]
230236 Bitcoin ( BitcoinFundingInfo ) ,
231- #[ display( "monero(..) " ) ]
237+ #[ display( "{0} " ) ]
232238 Monero ( MoneroFundingInfo ) ,
233239}
234240
235- #[ derive( Clone , Debug , NetworkDecode , NetworkEncode ) ]
241+ #[ cfg_attr( feature = "serde" , serde_as) ]
242+ #[ derive( Clone , Debug , Eq , PartialEq , NetworkDecode , NetworkEncode ) ]
243+ #[ cfg_attr(
244+ feature = "serde" ,
245+ derive( Serialize , Deserialize ) ,
246+ serde( crate = "serde_crate" )
247+ ) ]
236248pub struct BitcoinFundingInfo {
237249 pub swap_id : SwapId ,
238250 pub address : bitcoin:: Address ,
251+ #[ serde( with = "bitcoin::util::amount::serde::as_btc" ) ]
239252 pub amount : bitcoin:: Amount ,
240253}
241254
@@ -262,9 +275,16 @@ impl fmt::Display for BitcoinFundingInfo {
262275 }
263276}
264277
265- #[ derive( Clone , Debug , NetworkEncode , NetworkDecode ) ]
278+ #[ cfg_attr( feature = "serde" , serde_as) ]
279+ #[ derive( Clone , Debug , Eq , PartialEq , NetworkEncode , NetworkDecode ) ]
280+ #[ cfg_attr(
281+ feature = "serde" ,
282+ derive( Serialize , Deserialize ) ,
283+ serde( crate = "serde_crate" )
284+ ) ]
266285pub struct MoneroFundingInfo {
267286 pub swap_id : SwapId ,
287+ #[ serde( with = "monero::util::amount::serde::as_xmr" ) ]
268288 pub amount : monero:: Amount ,
269289 pub address : monero:: Address ,
270290}
0 commit comments