@@ -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 > ,
@@ -804,7 +805,8 @@ impl OutboundPayments {
804
805
hash_map:: Entry :: Occupied ( mut payment) => {
805
806
let res = match payment. get ( ) {
806
807
PendingOutboundPayment :: Retryable {
807
- total_msat, keysend_preimage, payment_secret, payment_metadata, pending_amt_msat, ..
808
+ total_msat, keysend_preimage, payment_secret, payment_metadata,
809
+ custom_tlvs, pending_amt_msat, ..
808
810
} => {
809
811
let retry_amt_msat = route. get_total_amount ( ) ;
810
812
if retry_amt_msat + * pending_amt_msat > * total_msat * ( 100 + RETRY_OVERFLOW_PERCENTAGE ) / 100 {
@@ -815,7 +817,7 @@ impl OutboundPayments {
815
817
( * total_msat, RecipientOnionFields {
816
818
payment_secret : * payment_secret,
817
819
payment_metadata : payment_metadata. clone ( ) ,
818
- custom_tlvs : Vec :: new ( ) ,
820
+ custom_tlvs : custom_tlvs . clone ( ) ,
819
821
} , * keysend_preimage)
820
822
} ,
821
823
PendingOutboundPayment :: Legacy { .. } => {
@@ -1014,6 +1016,7 @@ impl OutboundPayments {
1014
1016
payment_secret : recipient_onion. payment_secret ,
1015
1017
payment_metadata : recipient_onion. payment_metadata ,
1016
1018
keysend_preimage,
1019
+ custom_tlvs : recipient_onion. custom_tlvs ,
1017
1020
starting_block_height : best_block_height,
1018
1021
total_msat : route. get_total_amount ( ) ,
1019
1022
} ) ;
@@ -1463,6 +1466,7 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
1463
1466
( 6 , total_msat, required) ,
1464
1467
( 7 , payment_metadata, option) ,
1465
1468
( 8 , pending_amt_msat, required) ,
1469
+ ( 9 , custom_tlvs, optional_vec) ,
1466
1470
( 10 , starting_block_height, required) ,
1467
1471
( not_written, retry_strategy, ( static_value, None ) ) ,
1468
1472
( not_written, attempts, ( static_value, PaymentAttempts :: new( ) ) ) ,
0 commit comments