@@ -891,6 +891,7 @@ class LightningManager {
891891 broadcasted_transactions : await this . getLdkBroadcastedTxs ( ) ,
892892 payment_ids : await this . getLdkPaymentIds ( ) ,
893893 spendable_outputs : await this . getLdkSpendableOutputs ( ) ,
894+ payments_claimed : await this . getLdkPaymentsClaimed ( ) ,
894895 timestamp : Date . now ( ) ,
895896 } ,
896897 package_version : require ( '../package.json' ) . version ,
@@ -1133,6 +1134,40 @@ class LightningManager {
11331134 } ) ;
11341135 } ;
11351136
1137+ /**
1138+ * Adds payment claimed to storage.
1139+ * @param payment {@link TChannelManagerClaim }
1140+ * @returns void
1141+ */
1142+ private appendLdkPaymentsClaimed = async (
1143+ payment : TChannelManagerClaim ,
1144+ ) : Promise < void > => {
1145+ let paymentsClaimed = await this . getLdkPaymentsClaimed ( ) ;
1146+ if ( paymentsClaimed . includes ( payment ) ) {
1147+ return ;
1148+ }
1149+
1150+ paymentsClaimed . push ( payment ) ;
1151+ await ldk . writeToFile ( {
1152+ fileName : ELdkFiles . payments_claimed ,
1153+ content : JSON . stringify ( paymentsClaimed ) ,
1154+ } ) ;
1155+ } ;
1156+
1157+ /**
1158+ * Returns the payments claimed in storage.
1159+ * @returns {@link TChannelManagerClaim[] }
1160+ */
1161+ getLdkPaymentsClaimed = async ( ) : Promise < TChannelManagerClaim [ ] > => {
1162+ const res = await ldk . readFromFile ( {
1163+ fileName : ELdkFiles . payments_claimed ,
1164+ } ) ;
1165+ if ( res . isOk ( ) ) {
1166+ return parseData ( res . value . content , DefaultLdkDataShape . payments_claimed ) ;
1167+ }
1168+ return DefaultLdkDataShape . payments_claimed ;
1169+ } ;
1170+
11361171 /**
11371172 * Returns previously confirmed outputs from storage.
11381173 * @returns {Promise<TLdkConfirmedOutputs> }
@@ -1564,8 +1599,11 @@ class LightningManager {
15641599 console . log ( `onChannelManagerDiscardFunding: ${ JSON . stringify ( res ) } ` ) ; //TODO
15651600 }
15661601
1567- private onChannelManagerPaymentClaimed ( res : TChannelManagerClaim ) : void {
1602+ private async onChannelManagerPaymentClaimed (
1603+ res : TChannelManagerClaim ,
1604+ ) : Promise < void > {
15681605 // Payment Received/Invoice Paid.
1606+ await this . appendLdkPaymentsClaimed ( res ) ;
15691607 console . log ( `onChannelManagerPaymentClaimed: ${ JSON . stringify ( res ) } ` ) ;
15701608 this . syncLdk ( ) . then ( ) ;
15711609 }
0 commit comments