@@ -20,7 +20,6 @@ import akka.actor.typed.scaladsl.Behaviors
20
20
import akka .actor .typed .scaladsl .adapter .{ClassicActorContextOps , actorRefAdapter }
21
21
import akka .actor .{Actor , ActorContext , ActorRef , FSM , OneForOneStrategy , PossiblyHarmful , Props , SupervisorStrategy , typed }
22
22
import akka .event .Logging .MDC
23
- import com .softwaremill .quicklens .ModifyPimp
24
23
import fr .acinq .bitcoin .scalacompat .Crypto .{PrivateKey , PublicKey }
25
24
import fr .acinq .bitcoin .scalacompat .{ByteVector32 , Satoshi , SatoshiLong , Transaction , TxId }
26
25
import fr .acinq .eclair .Logs .LogCategory
@@ -2690,7 +2689,19 @@ class Channel(val nodeParams: NodeParams, val wallet: OnChainChannelFunder with
2690
2689
// caution!
2691
2690
log.warning(" force-closing with fundingTxIndex reset to {} (concurrent funding transactions: {})" , resetFundingTxIndex, data.commitments.active.filter(_.fundingTxIndex > resetFundingTxIndex).map(_.fundingTxId).mkString(" , " ))
2692
2691
replyTo ! RES_SUCCESS (c, data.channelId)
2693
- val resetData = data.modify(_.commitments.active).using(_.filter(_.fundingTxIndex <= resetFundingTxIndex))
2692
+ val commitments1 = data.commitments.copy(active = data.commitments.active.filter(_.fundingTxIndex <= resetFundingTxIndex))
2693
+ val resetData = data match {
2694
+ case data : DATA_WAIT_FOR_FUNDING_CONFIRMED => data.copy(commitments = commitments1)
2695
+ case data : DATA_WAIT_FOR_CHANNEL_READY => data.copy(commitments = commitments1)
2696
+ case data : DATA_WAIT_FOR_DUAL_FUNDING_CONFIRMED => data.copy(commitments = commitments1)
2697
+ case data : DATA_WAIT_FOR_DUAL_FUNDING_READY => data.copy(commitments = commitments1)
2698
+ case data : DATA_NORMAL => data.copy(commitments = commitments1)
2699
+ case data : DATA_SHUTDOWN => data.copy(commitments = commitments1)
2700
+ case data : DATA_NEGOTIATING => data.copy(commitments = commitments1)
2701
+ case data : DATA_NEGOTIATING_SIMPLE => data.copy(commitments = commitments1)
2702
+ case data : DATA_CLOSING => data.copy(commitments = commitments1)
2703
+ case data : DATA_WAIT_FOR_REMOTE_PUBLISH_FUTURE_COMMITMENT => data.copy(commitments = commitments1)
2704
+ }
2694
2705
handleLocalError(failure, resetData, Some (c))
2695
2706
} else {
2696
2707
handleCommandError(CommandUnavailableInThisState (d.channelId, " forcecloseresetfundingindex" , stateName), c)
0 commit comments