@@ -2,7 +2,6 @@ use crate::error::MutinyError;
22use  crate :: nodemanager:: NodeManager ; 
33use  crate :: storage:: MutinyStorage ; 
44use  bitcoin:: { Address ,  XOnlyPublicKey } ; 
5- use  lightning_invoice:: Bolt11Invoice ; 
65use  lnurl:: lightning_address:: LightningAddress ; 
76use  lnurl:: lnurl:: LnUrl ; 
87use  nostr:: Metadata ; 
@@ -21,7 +20,7 @@ pub struct LabelItem {
2120    /// List of addresses that have this label 
2221pub  addresses :  Vec < Address > , 
2322    /// List of invoices that have this label 
24- pub  invoices :  Vec < Bolt11Invoice > , 
23+ pub  invoices :  Vec < String > , 
2524    /// Epoch time in seconds when this label was last used 
2625pub  last_used_time :  u64 , 
2726} 
@@ -96,7 +95,7 @@ pub trait LabelStorage {
9695    /// Get a map of addresses to labels. This can be used to get all the labels for an address 
9796fn  get_address_labels ( & self )  -> Result < HashMap < String ,  Vec < String > > ,  MutinyError > ; 
9897    /// Get a map of invoices to labels. This can be used to get all the labels for an invoice 
99- fn  get_invoice_labels ( & self )  -> Result < HashMap < Bolt11Invoice ,  Vec < String > > ,  MutinyError > ; 
98+ fn  get_invoice_labels ( & self )  -> Result < HashMap < String ,  Vec < String > > ,  MutinyError > ; 
10099    /// Get all the existing labels 
101100fn  get_labels ( & self )  -> Result < HashMap < String ,  LabelItem > ,  MutinyError > ; 
102101    /// Get information about a label 
@@ -108,11 +107,7 @@ pub trait LabelStorage {
108107    /// Set the labels for an invoice, replacing any existing labels 
109108/// If you do not want to replace any existing labels, use `get_invoice_labels` to get the existing labels, 
110109/// add the new labels, and then use `set_invoice_labels` to set the new labels 
111- fn  set_invoice_labels ( 
112-         & self , 
113-         invoice :  Bolt11Invoice , 
114-         labels :  Vec < String > , 
115-     )  -> Result < ( ) ,  MutinyError > ; 
110+ fn  set_invoice_labels ( & self ,  invoice :  String ,  labels :  Vec < String > )  -> Result < ( ) ,  MutinyError > ; 
116111    /// Get all the existing contacts 
117112fn  get_contacts ( & self )  -> Result < HashMap < String ,  Contact > ,  MutinyError > ; 
118113    /// Get a contact by label, the label should be a uuid 
@@ -139,9 +134,8 @@ impl<S: MutinyStorage> LabelStorage for S {
139134        Ok ( res. unwrap_or_default ( ) )  // if no labels exist, return an empty map 
140135    } 
141136
142-     fn  get_invoice_labels ( & self )  -> Result < HashMap < Bolt11Invoice ,  Vec < String > > ,  MutinyError >  { 
143-         let  res:  Option < HashMap < Bolt11Invoice ,  Vec < String > > >  =
144-             self . get_data ( INVOICE_LABELS_MAP_KEY ) ?; 
137+     fn  get_invoice_labels ( & self )  -> Result < HashMap < String ,  Vec < String > > ,  MutinyError >  { 
138+         let  res:  Option < HashMap < String ,  Vec < String > > >  = self . get_data ( INVOICE_LABELS_MAP_KEY ) ?; 
145139        Ok ( res. unwrap_or_default ( ) )  // if no labels exist, return an empty map 
146140    } 
147141
@@ -207,11 +201,7 @@ impl<S: MutinyStorage> LabelStorage for S {
207201        Ok ( ( ) ) 
208202    } 
209203
210-     fn  set_invoice_labels ( 
211-         & self , 
212-         invoice :  Bolt11Invoice , 
213-         labels :  Vec < String > , 
214-     )  -> Result < ( ) ,  MutinyError >  { 
204+     fn  set_invoice_labels ( & self ,  invoice :  String ,  labels :  Vec < String > )  -> Result < ( ) ,  MutinyError >  { 
215205        // update the labels map 
216206        let  mut  invoice_labels = self . get_invoice_labels ( ) ?; 
217207        invoice_labels. insert ( invoice. clone ( ) ,  labels. clone ( ) ) ; 
@@ -397,7 +387,7 @@ impl<S: MutinyStorage> LabelStorage for NodeManager<S> {
397387        self . storage . get_address_labels ( ) 
398388    } 
399389
400-     fn  get_invoice_labels ( & self )  -> Result < HashMap < Bolt11Invoice ,  Vec < String > > ,  MutinyError >  { 
390+     fn  get_invoice_labels ( & self )  -> Result < HashMap < String ,  Vec < String > > ,  MutinyError >  { 
401391        self . storage . get_invoice_labels ( ) 
402392    } 
403393
@@ -413,11 +403,7 @@ impl<S: MutinyStorage> LabelStorage for NodeManager<S> {
413403        self . storage . set_address_labels ( address,  labels) 
414404    } 
415405
416-     fn  set_invoice_labels ( 
417-         & self , 
418-         invoice :  Bolt11Invoice , 
419-         labels :  Vec < String > , 
420-     )  -> Result < ( ) ,  MutinyError >  { 
406+     fn  set_invoice_labels ( & self ,  invoice :  String ,  labels :  Vec < String > )  -> Result < ( ) ,  MutinyError >  { 
421407        self . storage . set_invoice_labels ( invoice,  labels) 
422408    } 
423409
@@ -459,7 +445,6 @@ mod tests {
459445    use  super :: * ; 
460446    use  crate :: test_utils:: * ; 
461447    use  bitcoin:: Address ; 
462-     use  lightning_invoice:: Bolt11Invoice ; 
463448    use  std:: collections:: HashMap ; 
464449    use  std:: str:: FromStr ; 
465450
@@ -487,18 +472,18 @@ mod tests {
487472        labels
488473    } 
489474
490-     fn  create_test_invoice_labels_map ( )  -> HashMap < Bolt11Invoice ,  Vec < String > >  { 
475+     fn  create_test_invoice_labels_map ( )  -> HashMap < String ,  Vec < String > >  { 
491476        let  mut  labels = HashMap :: new ( ) ; 
492477        labels. insert ( 
493-             Bolt11Invoice :: from_str ( "lnbc923720n1pj9nrefpp5pczykgk37af5388n8dzynljpkzs7sje4melqgazlwv9y3apay8jqhp5rd8saxz3juve3eejq7z5fjttxmpaq88d7l92xv34n4h3mq6kwq2qcqzzsxqzfvsp5z0jwpehkuz9f2kv96h62p8x30nku76aj8yddpcust7g8ad0tr52q9qyyssqfy622q25helv8cj8hyxqltws4rdwz0xx2hw0uh575mn7a76cp3q4jcptmtjkjs4a34dqqxn8uy70d0qlxqleezv4zp84uk30pp5q3nqq4c9gkz" ) . unwrap ( ) , 
478+             String :: from ( "lnbc923720n1pj9nrefpp5pczykgk37af5388n8dzynljpkzs7sje4melqgazlwv9y3apay8jqhp5rd8saxz3juve3eejq7z5fjttxmpaq88d7l92xv34n4h3mq6kwq2qcqzzsxqzfvsp5z0jwpehkuz9f2kv96h62p8x30nku76aj8yddpcust7g8ad0tr52q9qyyssqfy622q25helv8cj8hyxqltws4rdwz0xx2hw0uh575mn7a76cp3q4jcptmtjkjs4a34dqqxn8uy70d0qlxqleezv4zp84uk30pp5q3nqq4c9gkz" ) , 
494479            vec ! [ "test1" . to_string( ) ] , 
495480        ) ; 
496481        labels. insert ( 
497-             Bolt11Invoice :: from_str ( "lnbc923720n1pj9nre4pp58zjsgd3xkyj33wv6rfmsshg9hqdpqrh8dyaulzwg62x6h3qs39tqhp5vqcr4c3tnxyxr08rk28n8mkphe6c5gfusmyncpmdh604trq3cafqcqzzsxqzfvsp5un4ey9rh0pl23648xtng2k6gtw7w2p6ldaexl6ylwcuhnsnxnsfs9qyyssqxnhr6jvdqfwr97qk7dtsnqaps78r7fjlpyz5z57r2k70az5tvvss4tpucycqpph8gx0vxxr7xse442zf8wxlskln8n77qkd4kad4t5qp92lvrm" ) . unwrap ( ) , 
482+             String :: from ( "lnbc923720n1pj9nre4pp58zjsgd3xkyj33wv6rfmsshg9hqdpqrh8dyaulzwg62x6h3qs39tqhp5vqcr4c3tnxyxr08rk28n8mkphe6c5gfusmyncpmdh604trq3cafqcqzzsxqzfvsp5un4ey9rh0pl23648xtng2k6gtw7w2p6ldaexl6ylwcuhnsnxnsfs9qyyssqxnhr6jvdqfwr97qk7dtsnqaps78r7fjlpyz5z57r2k70az5tvvss4tpucycqpph8gx0vxxr7xse442zf8wxlskln8n77qkd4kad4t5qp92lvrm" ) , 
498483            vec ! [ "test2" . to_string( ) ] , 
499484        ) ; 
500485        labels. insert ( 
501-             Bolt11Invoice :: from_str ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) . unwrap ( ) , 
486+             String :: from ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) , 
502487            vec ! [ "test3" . to_string( ) ] , 
503488        ) ; 
504489        labels
@@ -517,7 +502,7 @@ mod tests {
517502            "test2" . to_string ( ) , 
518503            LabelItem  { 
519504                addresses :  vec ! [ Address :: from_str( "1BitcoinEaterAddressDontSendf59kuE" ) . unwrap( ) ] , 
520-                 invoices :  vec ! [ Bolt11Invoice :: from_str ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) . unwrap ( ) ] , 
505+                 invoices :  vec ! [ String :: from ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) ] , 
521506                ..Default :: default ( ) 
522507            } , 
523508        ) ; 
@@ -672,7 +657,7 @@ mod tests {
672657
673658        let  storage = MemoryStorage :: default ( ) ; 
674659
675-         let  invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ; 
660+         let  invoice = INVOICE . to_string ( ) ; 
676661        let  labels = vec ! [ "label1" . to_string( ) ,  "label2" . to_string( ) ] ; 
677662
678663        let  result = storage. set_invoice_labels ( invoice. clone ( ) ,  labels. clone ( ) ) ; 
@@ -792,7 +777,7 @@ mod tests {
792777        let  storage = MemoryStorage :: default ( ) ; 
793778
794779        let  address = Address :: from_str ( ADDRESS ) . unwrap ( ) ; 
795-         let  invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ; 
780+         let  invoice = INVOICE . to_string ( ) ; 
796781        let  label = "test_label" . to_string ( ) ; 
797782        let  other_label = "other_label" . to_string ( ) ; 
798783        let  contact = create_test_contacts ( ) . iter ( ) . next ( ) . unwrap ( ) . 1 . to_owned ( ) ; 
@@ -920,7 +905,7 @@ mod tests {
920905        assert_eq ! ( contact. last_used,  0 ) ; 
921906        let  id = storage. create_new_contact ( contact. clone ( ) ) . unwrap ( ) ; 
922907
923-         let  invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ; 
908+         let  invoice = INVOICE . to_string ( ) ; 
924909
925910        storage
926911            . set_invoice_labels ( invoice,  vec ! [ id. clone( ) ] ) 
0 commit comments