@@ -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
2221 pub 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
2625 pub last_used_time : u64 ,
2726}
@@ -89,7 +88,7 @@ pub trait LabelStorage {
8988 /// Get a map of addresses to labels. This can be used to get all the labels for an address
9089 fn get_address_labels ( & self ) -> Result < HashMap < String , Vec < String > > , MutinyError > ;
9190 /// Get a map of invoices to labels. This can be used to get all the labels for an invoice
92- fn get_invoice_labels ( & self ) -> Result < HashMap < Bolt11Invoice , Vec < String > > , MutinyError > ;
91+ fn get_invoice_labels ( & self ) -> Result < HashMap < String , Vec < String > > , MutinyError > ;
9392 /// Get all the existing labels
9493 fn get_labels ( & self ) -> Result < HashMap < String , LabelItem > , MutinyError > ;
9594 /// Get information about a label
@@ -101,11 +100,7 @@ pub trait LabelStorage {
101100 /// Set the labels for an invoice, replacing any existing labels
102101 /// If you do not want to replace any existing labels, use `get_invoice_labels` to get the existing labels,
103102 /// add the new labels, and then use `set_invoice_labels` to set the new labels
104- fn set_invoice_labels (
105- & self ,
106- invoice : Bolt11Invoice ,
107- labels : Vec < String > ,
108- ) -> Result < ( ) , MutinyError > ;
103+ fn set_invoice_labels ( & self , invoice : String , labels : Vec < String > ) -> Result < ( ) , MutinyError > ;
109104 /// Get all the existing contacts
110105 fn get_contacts ( & self ) -> Result < HashMap < String , Contact > , MutinyError > ;
111106 /// Get a contact by label, the label should be a uuid
@@ -132,9 +127,8 @@ impl<S: MutinyStorage> LabelStorage for S {
132127 Ok ( res. unwrap_or_default ( ) ) // if no labels exist, return an empty map
133128 }
134129
135- fn get_invoice_labels ( & self ) -> Result < HashMap < Bolt11Invoice , Vec < String > > , MutinyError > {
136- let res: Option < HashMap < Bolt11Invoice , Vec < String > > > =
137- self . get_data ( INVOICE_LABELS_MAP_KEY ) ?;
130+ fn get_invoice_labels ( & self ) -> Result < HashMap < String , Vec < String > > , MutinyError > {
131+ let res: Option < HashMap < String , Vec < String > > > = self . get_data ( INVOICE_LABELS_MAP_KEY ) ?;
138132 Ok ( res. unwrap_or_default ( ) ) // if no labels exist, return an empty map
139133 }
140134
@@ -200,11 +194,7 @@ impl<S: MutinyStorage> LabelStorage for S {
200194 Ok ( ( ) )
201195 }
202196
203- fn set_invoice_labels (
204- & self ,
205- invoice : Bolt11Invoice ,
206- labels : Vec < String > ,
207- ) -> Result < ( ) , MutinyError > {
197+ fn set_invoice_labels ( & self , invoice : String , labels : Vec < String > ) -> Result < ( ) , MutinyError > {
208198 // update the labels map
209199 let mut invoice_labels = self . get_invoice_labels ( ) ?;
210200 invoice_labels. insert ( invoice. clone ( ) , labels. clone ( ) ) ;
@@ -390,7 +380,7 @@ impl<S: MutinyStorage> LabelStorage for NodeManager<S> {
390380 self . storage . get_address_labels ( )
391381 }
392382
393- fn get_invoice_labels ( & self ) -> Result < HashMap < Bolt11Invoice , Vec < String > > , MutinyError > {
383+ fn get_invoice_labels ( & self ) -> Result < HashMap < String , Vec < String > > , MutinyError > {
394384 self . storage . get_invoice_labels ( )
395385 }
396386
@@ -406,11 +396,7 @@ impl<S: MutinyStorage> LabelStorage for NodeManager<S> {
406396 self . storage . set_address_labels ( address, labels)
407397 }
408398
409- fn set_invoice_labels (
410- & self ,
411- invoice : Bolt11Invoice ,
412- labels : Vec < String > ,
413- ) -> Result < ( ) , MutinyError > {
399+ fn set_invoice_labels ( & self , invoice : String , labels : Vec < String > ) -> Result < ( ) , MutinyError > {
414400 self . storage . set_invoice_labels ( invoice, labels)
415401 }
416402
@@ -452,7 +438,6 @@ mod tests {
452438 use super :: * ;
453439 use crate :: test_utils:: * ;
454440 use bitcoin:: Address ;
455- use lightning_invoice:: Bolt11Invoice ;
456441 use std:: collections:: HashMap ;
457442 use std:: str:: FromStr ;
458443
@@ -480,18 +465,18 @@ mod tests {
480465 labels
481466 }
482467
483- fn create_test_invoice_labels_map ( ) -> HashMap < Bolt11Invoice , Vec < String > > {
468+ fn create_test_invoice_labels_map ( ) -> HashMap < String , Vec < String > > {
484469 let mut labels = HashMap :: new ( ) ;
485470 labels. insert (
486- Bolt11Invoice :: from_str ( "lnbc923720n1pj9nrefpp5pczykgk37af5388n8dzynljpkzs7sje4melqgazlwv9y3apay8jqhp5rd8saxz3juve3eejq7z5fjttxmpaq88d7l92xv34n4h3mq6kwq2qcqzzsxqzfvsp5z0jwpehkuz9f2kv96h62p8x30nku76aj8yddpcust7g8ad0tr52q9qyyssqfy622q25helv8cj8hyxqltws4rdwz0xx2hw0uh575mn7a76cp3q4jcptmtjkjs4a34dqqxn8uy70d0qlxqleezv4zp84uk30pp5q3nqq4c9gkz" ) . unwrap ( ) ,
471+ String :: from ( "lnbc923720n1pj9nrefpp5pczykgk37af5388n8dzynljpkzs7sje4melqgazlwv9y3apay8jqhp5rd8saxz3juve3eejq7z5fjttxmpaq88d7l92xv34n4h3mq6kwq2qcqzzsxqzfvsp5z0jwpehkuz9f2kv96h62p8x30nku76aj8yddpcust7g8ad0tr52q9qyyssqfy622q25helv8cj8hyxqltws4rdwz0xx2hw0uh575mn7a76cp3q4jcptmtjkjs4a34dqqxn8uy70d0qlxqleezv4zp84uk30pp5q3nqq4c9gkz" ) ,
487472 vec ! [ "test1" . to_string( ) ] ,
488473 ) ;
489474 labels. insert (
490- Bolt11Invoice :: from_str ( "lnbc923720n1pj9nre4pp58zjsgd3xkyj33wv6rfmsshg9hqdpqrh8dyaulzwg62x6h3qs39tqhp5vqcr4c3tnxyxr08rk28n8mkphe6c5gfusmyncpmdh604trq3cafqcqzzsxqzfvsp5un4ey9rh0pl23648xtng2k6gtw7w2p6ldaexl6ylwcuhnsnxnsfs9qyyssqxnhr6jvdqfwr97qk7dtsnqaps78r7fjlpyz5z57r2k70az5tvvss4tpucycqpph8gx0vxxr7xse442zf8wxlskln8n77qkd4kad4t5qp92lvrm" ) . unwrap ( ) ,
475+ String :: from ( "lnbc923720n1pj9nre4pp58zjsgd3xkyj33wv6rfmsshg9hqdpqrh8dyaulzwg62x6h3qs39tqhp5vqcr4c3tnxyxr08rk28n8mkphe6c5gfusmyncpmdh604trq3cafqcqzzsxqzfvsp5un4ey9rh0pl23648xtng2k6gtw7w2p6ldaexl6ylwcuhnsnxnsfs9qyyssqxnhr6jvdqfwr97qk7dtsnqaps78r7fjlpyz5z57r2k70az5tvvss4tpucycqpph8gx0vxxr7xse442zf8wxlskln8n77qkd4kad4t5qp92lvrm" ) ,
491476 vec ! [ "test2" . to_string( ) ] ,
492477 ) ;
493478 labels. insert (
494- Bolt11Invoice :: from_str ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) . unwrap ( ) ,
479+ String :: from ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) ,
495480 vec ! [ "test3" . to_string( ) ] ,
496481 ) ;
497482 labels
@@ -510,7 +495,7 @@ mod tests {
510495 "test2" . to_string ( ) ,
511496 LabelItem {
512497 addresses : vec ! [ Address :: from_str( "1BitcoinEaterAddressDontSendf59kuE" ) . unwrap( ) ] ,
513- invoices : vec ! [ Bolt11Invoice :: from_str ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) . unwrap ( ) ] ,
498+ invoices : vec ! [ String :: from ( "lnbc923720n1pj9nr6zpp5xmvlq2u5253htn52mflh2e6gn7pk5ht0d4qyhc62fadytccxw7hqhp5l4s6qwh57a7cwr7zrcz706qx0qy4eykcpr8m8dwz08hqf362egfscqzzsxqzfvsp5pr7yjvcn4ggrf6fq090zey0yvf8nqvdh2kq7fue0s0gnm69evy6s9qyyssqjyq0fwjr22eeg08xvmz88307yqu8tqqdjpycmermks822fpqyxgshj8hvnl9mkh6srclnxx0uf4ugfq43d66ak3rrz4dqcqd23vxwpsqf7dmhm" ) ] ,
514499 ..Default :: default ( )
515500 } ,
516501 ) ;
@@ -665,7 +650,7 @@ mod tests {
665650
666651 let storage = MemoryStorage :: default ( ) ;
667652
668- let invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ;
653+ let invoice = INVOICE . to_string ( ) ;
669654 let labels = vec ! [ "label1" . to_string( ) , "label2" . to_string( ) ] ;
670655
671656 let result = storage. set_invoice_labels ( invoice. clone ( ) , labels. clone ( ) ) ;
@@ -785,7 +770,7 @@ mod tests {
785770 let storage = MemoryStorage :: default ( ) ;
786771
787772 let address = Address :: from_str ( ADDRESS ) . unwrap ( ) ;
788- let invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ;
773+ let invoice = INVOICE . to_string ( ) ;
789774 let label = "test_label" . to_string ( ) ;
790775 let other_label = "other_label" . to_string ( ) ;
791776 let contact = create_test_contacts ( ) . iter ( ) . next ( ) . unwrap ( ) . 1 . to_owned ( ) ;
@@ -913,7 +898,7 @@ mod tests {
913898 assert_eq ! ( contact. last_used, 0 ) ;
914899 let id = storage. create_new_contact ( contact. clone ( ) ) . unwrap ( ) ;
915900
916- let invoice = Bolt11Invoice :: from_str ( INVOICE ) . unwrap ( ) ;
901+ let invoice = INVOICE . to_string ( ) ;
917902
918903 storage
919904 . set_invoice_labels ( invoice, vec ! [ id. clone( ) ] )
0 commit comments