@@ -1581,7 +1581,7 @@ static struct command_result *payment_createonion_success(struct command *cmd,
15811581/* Temporary serialization method for the tlv_payload.data until we rework the
15821582 * API that is generated from the specs to use the setter/getter interface. */
15831583static void tlvstream_set_tlv_payload_data (struct tlv_field * * stream ,
1584- struct secret * payment_secret ,
1584+ const struct secret * payment_secret ,
15851585 u64 total_msat )
15861586{
15871587 u8 * ser = tal_arr (NULL , u8 , 0 );
@@ -1596,7 +1596,8 @@ static void payment_add_hop_onion_payload(struct payment *p,
15961596 struct route_hop * node ,
15971597 struct route_hop * next ,
15981598 bool final ,
1599- struct secret * payment_secret )
1599+ struct secret * payment_secret ,
1600+ const u8 * payment_metadata )
16001601{
16011602 struct createonion_request * cr = p -> createonion_request ;
16021603 u32 cltv = p -> start_block + next -> delay + 1 ;
@@ -1627,6 +1628,11 @@ static void payment_add_hop_onion_payload(struct payment *p,
16271628 fields , payment_secret ,
16281629 root -> amount .millisatoshis ); /* Raw: TLV payload generation*/
16291630 }
1631+ if (payment_metadata != NULL ) {
1632+ assert (final );
1633+ tlvstream_set_raw (fields , TLV_TLV_PAYLOAD_PAYMENT_METADATA ,
1634+ payment_metadata , tal_bytelen (payment_metadata ));
1635+ }
16301636}
16311637
16321638static void payment_compute_onion_payloads (struct payment * p )
@@ -1665,7 +1671,7 @@ static void payment_compute_onion_payloads(struct payment *p)
16651671 * i+1 */
16661672 payment_add_hop_onion_payload (p , & cr -> hops [i ], & p -> route [i ],
16671673 & p -> route [i + 1 ], false,
1668- NULL );
1674+ NULL , NULL );
16691675 tal_append_fmt (& routetxt , "%s -> " ,
16701676 type_to_string (tmpctx , struct short_channel_id ,
16711677 & p -> route [i ].scid ));
@@ -1675,7 +1681,7 @@ static void payment_compute_onion_payloads(struct payment *p)
16751681 payment_add_hop_onion_payload (
16761682 p , & cr -> hops [hopcount - 1 ], & p -> route [hopcount - 1 ],
16771683 & p -> route [hopcount - 1 ], true,
1678- root -> payment_secret );
1684+ root -> payment_secret , root -> payment_metadata );
16791685 tal_append_fmt (& routetxt , "%s" ,
16801686 type_to_string (tmpctx , struct short_channel_id ,
16811687 & p -> route [hopcount - 1 ].scid ));
0 commit comments