@@ -47,6 +47,7 @@ pub(crate) enum PendingOutboundPayment {
47
47
payment_secret : Option < PaymentSecret > ,
48
48
payment_metadata : Option < Vec < u8 > > ,
49
49
keysend_preimage : Option < PaymentPreimage > ,
50
+ custom_tlvs : Vec < ( u64 , Vec < u8 > ) > ,
50
51
pending_amt_msat : u64 ,
51
52
/// Used to track the fee paid. Only present if the payment was serialized on 0.0.103+.
52
53
pending_fee_msat : Option < u64 > ,
@@ -799,7 +800,8 @@ impl OutboundPayments {
799
800
hash_map:: Entry :: Occupied ( mut payment) => {
800
801
let res = match payment. get ( ) {
801
802
PendingOutboundPayment :: Retryable {
802
- total_msat, keysend_preimage, payment_secret, payment_metadata, pending_amt_msat, ..
803
+ total_msat, keysend_preimage, payment_secret, payment_metadata,
804
+ custom_tlvs, pending_amt_msat, ..
803
805
} => {
804
806
let retry_amt_msat = route. get_total_amount ( ) ;
805
807
if retry_amt_msat + * pending_amt_msat > * total_msat * ( 100 + RETRY_OVERFLOW_PERCENTAGE ) / 100 {
@@ -810,7 +812,7 @@ impl OutboundPayments {
810
812
( * total_msat, RecipientOnionFields {
811
813
payment_secret : * payment_secret,
812
814
payment_metadata : payment_metadata. clone ( ) ,
813
- custom_tlvs : Vec :: new ( ) ,
815
+ custom_tlvs : custom_tlvs . clone ( ) ,
814
816
} , * keysend_preimage)
815
817
} ,
816
818
PendingOutboundPayment :: Legacy { .. } => {
@@ -1011,6 +1013,7 @@ impl OutboundPayments {
1011
1013
payment_secret : recipient_onion. payment_secret ,
1012
1014
payment_metadata : recipient_onion. payment_metadata ,
1013
1015
keysend_preimage,
1016
+ custom_tlvs : recipient_onion. custom_tlvs ,
1014
1017
starting_block_height : best_block_height,
1015
1018
total_msat : route. get_total_amount ( ) ,
1016
1019
} ) ;
@@ -1460,6 +1463,7 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
1460
1463
( 6 , total_msat, required) ,
1461
1464
( 7 , payment_metadata, option) ,
1462
1465
( 8 , pending_amt_msat, required) ,
1466
+ ( 9 , custom_tlvs, optional_vec) ,
1463
1467
( 10 , starting_block_height, required) ,
1464
1468
( not_written, retry_strategy, ( static_value, None ) ) ,
1465
1469
( not_written, attempts, ( static_value, PaymentAttempts :: new( ) ) ) ,
0 commit comments