Skip to content

Commit 024eae0

Browse files
Add PaymentMetadata and integrate it with PaymentDetail
- Introduces the `PaymentMetadata` struct with a randomly generated 16-byte ID ([u8; 16]), lighter than the 32-byte ID used in `PaymentDetail`. - Adds a pointer from `PaymentDetail` to `PaymentMetadata`, available only for `PaymentKind::Bolt11`, `PaymentKind::Bolt12Offer` and `PaymentKind::Bolt12Refund` . - For `Bolt11`, the metadata reference is an `Option<PaymentMetadataId>`. - For `Bolt12Refund` and `Bolt12Offer`, it's a `Vec<PaymentMetadataId>`, allowing multiple metadata entries per detail.
1 parent 7977b04 commit 024eae0

File tree

5 files changed

+487
-10
lines changed

5 files changed

+487
-10
lines changed

src/event.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,7 @@ where
745745
offer_id,
746746
payer_note,
747747
quantity,
748+
payment_metadata_ids: Vec::new(),
748749
};
749750

750751
let payment = PaymentDetails::new(

src/payment/bolt11.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ impl Bolt11Payment {
180180
hash: payment_hash,
181181
preimage: None,
182182
secret: payment_secret,
183+
payment_metadata_id: None,
183184
};
184185
let payment = PaymentDetails::new(
185186
payment_id,
@@ -203,6 +204,7 @@ impl Bolt11Payment {
203204
hash: payment_hash,
204205
preimage: None,
205206
secret: payment_secret,
207+
payment_metadata_id: None,
206208
};
207209
let payment = PaymentDetails::new(
208210
payment_id,
@@ -315,6 +317,7 @@ impl Bolt11Payment {
315317
hash: payment_hash,
316318
preimage: None,
317319
secret: Some(*payment_secret),
320+
payment_metadata_id: None,
318321
};
319322

320323
let payment = PaymentDetails::new(
@@ -339,6 +342,7 @@ impl Bolt11Payment {
339342
hash: payment_hash,
340343
preimage: None,
341344
secret: Some(*payment_secret),
345+
payment_metadata_id: None,
342346
};
343347
let payment = PaymentDetails::new(
344348
payment_id,
@@ -573,6 +577,7 @@ impl Bolt11Payment {
573577
hash: payment_hash,
574578
preimage,
575579
secret: Some(payment_secret.clone()),
580+
payment_metadata_id: None,
576581
};
577582
let payment = PaymentDetails::new(
578583
id,

src/payment/bolt12.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ impl Bolt12Payment {
106106
offer_id: offer.id(),
107107
payer_note: payer_note.map(UntrustedString),
108108
quantity,
109+
payment_metadata_ids: Vec::new(),
109110
};
110111
let payment = PaymentDetails::new(
111112
payment_id,
@@ -131,6 +132,7 @@ impl Bolt12Payment {
131132
offer_id: offer.id(),
132133
payer_note: payer_note.map(UntrustedString),
133134
quantity,
135+
payment_metadata_ids: Vec::new(),
134136
};
135137
let payment = PaymentDetails::new(
136138
payment_id,
@@ -212,6 +214,7 @@ impl Bolt12Payment {
212214
offer_id: offer.id(),
213215
payer_note: payer_note.map(UntrustedString),
214216
quantity,
217+
payment_metadata_ids: Vec::new(),
215218
};
216219
let payment = PaymentDetails::new(
217220
payment_id,
@@ -237,6 +240,7 @@ impl Bolt12Payment {
237240
offer_id: offer.id(),
238241
payer_note: payer_note.map(UntrustedString),
239242
quantity,
243+
payment_metadata_ids: Vec::new(),
240244
};
241245
let payment = PaymentDetails::new(
242246
payment_id,
@@ -334,6 +338,7 @@ impl Bolt12Payment {
334338
secret: None,
335339
payer_note: refund.payer_note().map(|note| UntrustedString(note.0.to_string())),
336340
quantity: refund.quantity(),
341+
payment_metadata_ids: Vec::new(),
337342
};
338343

339344
let payment = PaymentDetails::new(
@@ -400,6 +405,7 @@ impl Bolt12Payment {
400405
secret: None,
401406
payer_note: payer_note.map(|note| UntrustedString(note)),
402407
quantity,
408+
payment_metadata_ids: Vec::new(),
403409
};
404410
let payment = PaymentDetails::new(
405411
payment_id,

0 commit comments

Comments
 (0)