@@ -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}
@@ -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
9796 fn 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
101100 fn 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
117112 fn 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