package network.thunder.core.communication.processor.implementations.lnpayment.helper; import network.thunder.core.communication.objects.lightning.subobjects.ChannelStatus; import network.thunder.core.communication.objects.lightning.subobjects.PaymentData; import network.thunder.core.communication.objects.messages.interfaces.helper.LNPaymentHelper; import network.thunder.core.communication.objects.subobjects.PaymentSecret; /** * Created by matsjerratsch on 07/01/2016. */ public class QueueElementRedeem extends QueueElement { PaymentSecret paymentSecret; public QueueElementRedeem (PaymentSecret paymentSecret) { this.paymentSecret = paymentSecret; } @Override public ChannelStatus produceNewChannelStatus (ChannelStatus channelStatus, LNPaymentHelper paymentHelper) { //TODO Also test yet-to-be-included payments for refund.. ChannelStatus status = channelStatus.getClone(); PaymentData paymentData = null; for (PaymentData p : channelStatus.remainingPayments) { if (p.secret.equals(paymentSecret)) { paymentData = p; } } if (paymentData == null) { //TODO We want to redeem a payment, but apparently it's no longer within the oldpayments? System.out.println("QueueElementRedeem: Can't redeem, not part of old payments.."); return channelStatus; } status.redeemedPayments.add(paymentData); status.remainingPayments.remove(paymentData); status.amountServer += paymentData.amount; return status; } }