@@ -98,6 +98,10 @@ pub enum MessageContext {
98
98
///
99
99
/// [`OffersMessage`]: crate::onion_message::offers::OffersMessage
100
100
Offers ( OffersContext ) ,
101
+ /// Represents the data specific to [`AsyncPaymentsMessage`]s.
102
+ ///
103
+ /// [`AsyncPaymentsMessage`]: crate::onion_message::async_payments::AsyncPaymentsMessage
104
+ AsyncPayments ( AsyncPaymentsContext ) ,
101
105
/// Represents custom data received in a Custom Onion Message.
102
106
Custom ( Vec < u8 > ) ,
103
107
}
@@ -119,9 +123,22 @@ pub enum OffersContext {
119
123
} ,
120
124
}
121
125
126
+ /// Contains data specific to [`AsyncPaymentsMessage`]s.
127
+ ///
128
+ /// [`AsyncPaymentsMessage`]: crate::onion_message::async_payments::AsyncPaymentsMessage
129
+ #[ derive( Clone , Debug ) ]
130
+ pub enum AsyncPaymentsContext {
131
+ /// Represents an outbound async payment context.
132
+ OutboundPayment {
133
+ /// Payment id of the outbound payment.
134
+ payment_id : PaymentId
135
+ } ,
136
+ }
137
+
122
138
impl_writeable_tlv_based_enum ! ( MessageContext , ;
123
139
( 0 , Offers ) ,
124
140
( 1 , Custom ) ,
141
+ ( 2 , AsyncPayments ) ,
125
142
) ;
126
143
127
144
impl_writeable_tlv_based_enum ! ( OffersContext ,
@@ -131,6 +148,12 @@ impl_writeable_tlv_based_enum!(OffersContext,
131
148
} ,
132
149
; ) ;
133
150
151
+ impl_writeable_tlv_based_enum ! ( AsyncPaymentsContext ,
152
+ ( 0 , OutboundPayment ) => {
153
+ ( 0 , payment_id, required) ,
154
+ } ,
155
+ ; ) ;
156
+
134
157
/// Construct blinded onion message hops for the given `intermediate_nodes` and `recipient_node_id`.
135
158
pub ( super ) fn blinded_hops < T : secp256k1:: Signing + secp256k1:: Verification > (
136
159
secp_ctx : & Secp256k1 < T > , intermediate_nodes : & [ ForwardNode ] , recipient_node_id : PublicKey ,
0 commit comments