115
115
//! # let router = FakeRouter {};
116
116
//! # let scorer = RefCell::new(FakeScorer {});
117
117
//! # let logger = FakeLogger {};
118
- //! let invoice_payer = InvoicePayer::new(&payer, router, &logger, event_handler, Retry::Attempts(2));
118
+ //! let invoice_payer = InvoicePayer::new(&payer, & router, &logger, event_handler, Retry::Attempts(2));
119
119
//!
120
120
//! let invoice = "...";
121
121
//! if let Ok(invoice) = invoice.parse::<Invoice>() {
@@ -184,12 +184,13 @@ mod sealed {
184
184
/// (C-not exported) generally all users should use the [`InvoicePayer`] type alias.
185
185
pub struct InvoicePayerUsingTime <
186
186
P : Deref ,
187
- R : Router ,
187
+ R : Deref ,
188
188
L : Deref ,
189
189
E : sealed:: BaseEventHandler ,
190
190
T : Time
191
191
> where
192
192
P :: Target : Payer ,
193
+ R :: Target : Router ,
193
194
L :: Target : Logger ,
194
195
{
195
196
payer : P ,
@@ -316,10 +317,11 @@ pub enum PaymentError {
316
317
Sending ( PaymentSendFailure ) ,
317
318
}
318
319
319
- impl < P : Deref , R : Router , L : Deref , E : sealed:: BaseEventHandler , T : Time >
320
+ impl < P : Deref , R : Deref , L : Deref , E : sealed:: BaseEventHandler , T : Time >
320
321
InvoicePayerUsingTime < P , R , L , E , T >
321
322
where
322
323
P :: Target : Payer ,
324
+ R :: Target : Router ,
323
325
L :: Target : Logger ,
324
326
{
325
327
/// Creates an invoice payer that retries failed payment paths.
@@ -630,10 +632,11 @@ fn has_expired(route_params: &RouteParameters) -> bool {
630
632
} else { false }
631
633
}
632
634
633
- impl < P : Deref , R : Router , L : Deref , E : sealed:: BaseEventHandler , T : Time >
635
+ impl < P : Deref , R : Deref , L : Deref , E : sealed:: BaseEventHandler , T : Time >
634
636
InvoicePayerUsingTime < P , R , L , E , T >
635
637
where
636
638
P :: Target : Payer ,
639
+ R :: Target : Router ,
637
640
L :: Target : Logger ,
638
641
{
639
642
/// Returns a bool indicating whether the processed event should be forwarded to a user-provided
@@ -697,10 +700,11 @@ where
697
700
}
698
701
}
699
702
700
- impl < P : Deref , R : Router , L : Deref , E : EventHandler , T : Time >
703
+ impl < P : Deref , R : Deref , L : Deref , E : EventHandler , T : Time >
701
704
EventHandler for InvoicePayerUsingTime < P , R , L , E , T >
702
705
where
703
706
P :: Target : Payer ,
707
+ R :: Target : Router ,
704
708
L :: Target : Logger ,
705
709
{
706
710
fn handle_event ( & self , event : Event ) {
@@ -711,10 +715,11 @@ where
711
715
}
712
716
}
713
717
714
- impl < P : Deref , R : Router , L : Deref , T : Time , F : Future , H : Fn ( Event ) -> F >
718
+ impl < P : Deref , R : Deref , L : Deref , T : Time , F : Future , H : Fn ( Event ) -> F >
715
719
InvoicePayerUsingTime < P , R , L , H , T >
716
720
where
717
721
P :: Target : Payer ,
722
+ R :: Target : Router ,
718
723
L :: Target : Logger ,
719
724
{
720
725
/// Intercepts events required by the [`InvoicePayer`] and forwards them to the underlying event
@@ -746,7 +751,6 @@ mod tests {
746
751
use secp256k1:: { SecretKey , PublicKey , Secp256k1 } ;
747
752
use std:: cell:: RefCell ;
748
753
use std:: collections:: VecDeque ;
749
- use std:: ops:: DerefMut ;
750
754
use std:: time:: { SystemTime , Duration } ;
751
755
use crate :: time_utils:: tests:: SinceEpoch ;
752
756
use crate :: DEFAULT_EXPIRY_TIME ;
@@ -831,7 +835,7 @@ mod tests {
831
835
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
832
836
let logger = TestLogger :: new ( ) ;
833
837
let invoice_payer =
834
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
838
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
835
839
836
840
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
837
841
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -859,7 +863,7 @@ mod tests {
859
863
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
860
864
let logger = TestLogger :: new ( ) ;
861
865
let invoice_payer =
862
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
866
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
863
867
864
868
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
865
869
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -903,7 +907,7 @@ mod tests {
903
907
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
904
908
let logger = TestLogger :: new ( ) ;
905
909
let invoice_payer =
906
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
910
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
907
911
908
912
assert ! ( invoice_payer. pay_invoice( & invoice) . is_ok( ) ) ;
909
913
}
@@ -924,7 +928,7 @@ mod tests {
924
928
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
925
929
let logger = TestLogger :: new ( ) ;
926
930
let invoice_payer =
927
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
931
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
928
932
929
933
let payment_id = Some ( PaymentId ( [ 1 ; 32 ] ) ) ;
930
934
let event = Event :: PaymentPathFailed {
@@ -968,7 +972,7 @@ mod tests {
968
972
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
969
973
let logger = TestLogger :: new ( ) ;
970
974
let invoice_payer =
971
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
975
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
972
976
973
977
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
974
978
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1027,7 +1031,7 @@ mod tests {
1027
1031
type InvoicePayerUsingSinceEpoch < P , R , L , E > = InvoicePayerUsingTime :: < P , R , L , E , SinceEpoch > ;
1028
1032
1029
1033
let invoice_payer =
1030
- InvoicePayerUsingSinceEpoch :: new ( & payer, router, & logger, event_handler, Retry :: Timeout ( Duration :: from_secs ( 120 ) ) ) ;
1034
+ InvoicePayerUsingSinceEpoch :: new ( & payer, & router, & logger, event_handler, Retry :: Timeout ( Duration :: from_secs ( 120 ) ) ) ;
1031
1035
1032
1036
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1033
1037
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1066,7 +1070,7 @@ mod tests {
1066
1070
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1067
1071
let logger = TestLogger :: new ( ) ;
1068
1072
let invoice_payer =
1069
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1073
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1070
1074
1071
1075
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1072
1076
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1097,7 +1101,7 @@ mod tests {
1097
1101
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1098
1102
let logger = TestLogger :: new ( ) ;
1099
1103
let invoice_payer =
1100
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1104
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1101
1105
1102
1106
let payment_preimage = PaymentPreimage ( [ 1 ; 32 ] ) ;
1103
1107
let invoice = expired_invoice ( payment_preimage) ;
@@ -1121,7 +1125,7 @@ mod tests {
1121
1125
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1122
1126
let logger = TestLogger :: new ( ) ;
1123
1127
let invoice_payer =
1124
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1128
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1125
1129
1126
1130
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1127
1131
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1161,7 +1165,7 @@ mod tests {
1161
1165
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1162
1166
let logger = TestLogger :: new ( ) ;
1163
1167
let invoice_payer =
1164
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1168
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1165
1169
1166
1170
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1167
1171
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1194,7 +1198,7 @@ mod tests {
1194
1198
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1195
1199
let logger = TestLogger :: new ( ) ;
1196
1200
let invoice_payer =
1197
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1201
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1198
1202
1199
1203
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1200
1204
assert_eq ! ( * payer. attempts. borrow( ) , 1 ) ;
@@ -1229,7 +1233,7 @@ mod tests {
1229
1233
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1230
1234
let logger = TestLogger :: new ( ) ;
1231
1235
let invoice_payer =
1232
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1236
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1233
1237
1234
1238
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1235
1239
@@ -1267,7 +1271,7 @@ mod tests {
1267
1271
let router = FailingRouter { } ;
1268
1272
let logger = TestLogger :: new ( ) ;
1269
1273
let invoice_payer =
1270
- InvoicePayer :: new ( & payer, router, & logger, |_: Event | { } , Retry :: Attempts ( 0 ) ) ;
1274
+ InvoicePayer :: new ( & payer, & router, & logger, |_: Event | { } , Retry :: Attempts ( 0 ) ) ;
1271
1275
1272
1276
let payment_preimage = PaymentPreimage ( [ 1 ; 32 ] ) ;
1273
1277
let invoice = invoice ( payment_preimage) ;
@@ -1290,7 +1294,7 @@ mod tests {
1290
1294
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1291
1295
let logger = TestLogger :: new ( ) ;
1292
1296
let invoice_payer =
1293
- InvoicePayer :: new ( & payer, router, & logger, |_: Event | { } , Retry :: Attempts ( 0 ) ) ;
1297
+ InvoicePayer :: new ( & payer, & router, & logger, |_: Event | { } , Retry :: Attempts ( 0 ) ) ;
1294
1298
1295
1299
match invoice_payer. pay_invoice ( & invoice) {
1296
1300
Err ( PaymentError :: Sending ( _) ) => { } ,
@@ -1313,7 +1317,7 @@ mod tests {
1313
1317
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1314
1318
let logger = TestLogger :: new ( ) ;
1315
1319
let invoice_payer =
1316
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1320
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1317
1321
1318
1322
let payment_id =
1319
1323
Some ( invoice_payer. pay_zero_value_invoice ( & invoice, final_value_msat) . unwrap ( ) ) ;
@@ -1335,7 +1339,7 @@ mod tests {
1335
1339
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1336
1340
let logger = TestLogger :: new ( ) ;
1337
1341
let invoice_payer =
1338
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1342
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1339
1343
1340
1344
let payment_preimage = PaymentPreimage ( [ 1 ; 32 ] ) ;
1341
1345
let invoice = invoice ( payment_preimage) ;
@@ -1365,7 +1369,7 @@ mod tests {
1365
1369
let router = TestRouter :: new ( TestScorer :: new ( ) ) ;
1366
1370
let logger = TestLogger :: new ( ) ;
1367
1371
let invoice_payer =
1368
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1372
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1369
1373
1370
1374
let payment_id = Some ( invoice_payer. pay_pubkey (
1371
1375
pubkey, payment_preimage, final_value_msat, final_cltv_expiry_delta
@@ -1420,7 +1424,7 @@ mod tests {
1420
1424
let router = TestRouter :: new ( scorer) ;
1421
1425
let logger = TestLogger :: new ( ) ;
1422
1426
let invoice_payer =
1423
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1427
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1424
1428
1425
1429
let payment_id = Some ( invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ) ;
1426
1430
let event = Event :: PaymentPathFailed {
@@ -1455,7 +1459,7 @@ mod tests {
1455
1459
let router = TestRouter :: new ( scorer) ;
1456
1460
let logger = TestLogger :: new ( ) ;
1457
1461
let invoice_payer =
1458
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1462
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1459
1463
1460
1464
let payment_id = invoice_payer. pay_invoice ( & invoice) . unwrap ( ) ;
1461
1465
let event = Event :: PaymentPathSuccessful {
@@ -1498,7 +1502,7 @@ mod tests {
1498
1502
let router = TestRouter :: new ( scorer) ;
1499
1503
let logger = TestLogger :: new ( ) ;
1500
1504
let invoice_payer =
1501
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1505
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 0 ) ) ;
1502
1506
1503
1507
// Make first invoice payment.
1504
1508
invoice_payer. pay_invoice ( & payment_invoice) . unwrap ( ) ;
@@ -1552,7 +1556,7 @@ mod tests {
1552
1556
let router = TestRouter :: new ( scorer) ;
1553
1557
let logger = TestLogger :: new ( ) ;
1554
1558
let invoice_payer =
1555
- InvoicePayer :: new ( & payer, router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1559
+ InvoicePayer :: new ( & payer, & router, & logger, event_handler, Retry :: Attempts ( 2 ) ) ;
1556
1560
1557
1561
// Fail 1st path, leave 2nd path inflight
1558
1562
let payment_id = Some ( invoice_payer. pay_invoice ( & payment_invoice) . unwrap ( ) ) ;
@@ -2077,7 +2081,7 @@ mod tests {
2077
2081
router. expect_find_route ( Ok ( route. clone ( ) ) ) ;
2078
2082
2079
2083
let event_handler = |_: Event | { panic ! ( ) ; } ;
2080
- let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2084
+ let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , & router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2081
2085
2082
2086
assert ! ( invoice_payer. pay_invoice( & create_invoice_from_channelmanager_and_duration_since_epoch(
2083
2087
& nodes[ 1 ] . node, nodes[ 1 ] . keys_manager, nodes[ 1 ] . logger, Currency :: Bitcoin ,
@@ -2122,7 +2126,7 @@ mod tests {
2122
2126
router. expect_find_route ( Ok ( route. clone ( ) ) ) ;
2123
2127
2124
2128
let event_handler = |_: Event | { panic ! ( ) ; } ;
2125
- let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2129
+ let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , & router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2126
2130
2127
2131
assert ! ( invoice_payer. pay_invoice( & create_invoice_from_channelmanager_and_duration_since_epoch(
2128
2132
& nodes[ 1 ] . node, nodes[ 1 ] . keys_manager, nodes[ 1 ] . logger, Currency :: Bitcoin ,
@@ -2203,7 +2207,7 @@ mod tests {
2203
2207
let event_checker = expected_events. borrow_mut ( ) . pop_front ( ) . unwrap ( ) ;
2204
2208
event_checker ( event) ;
2205
2209
} ;
2206
- let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2210
+ let invoice_payer = InvoicePayer :: new ( nodes[ 0 ] . node , & router, nodes[ 0 ] . logger , event_handler, Retry :: Attempts ( 1 ) ) ;
2207
2211
2208
2212
assert ! ( invoice_payer. pay_invoice( & create_invoice_from_channelmanager_and_duration_since_epoch(
2209
2213
& nodes[ 1 ] . node, nodes[ 1 ] . keys_manager, nodes[ 1 ] . logger, Currency :: Bitcoin ,
0 commit comments