@@ -20,7 +20,6 @@ import akka.actor.typed.scaladsl.Behaviors
2020import akka .actor .typed .scaladsl .adapter .{ClassicActorContextOps , actorRefAdapter }
2121import akka .actor .{Actor , ActorContext , ActorRef , FSM , OneForOneStrategy , PossiblyHarmful , Props , SupervisorStrategy , typed }
2222import akka .event .Logging .MDC
23- import com .softwaremill .quicklens .ModifyPimp
2423import fr .acinq .bitcoin .scalacompat .Crypto .{PrivateKey , PublicKey }
2524import fr .acinq .bitcoin .scalacompat .{ByteVector32 , Satoshi , SatoshiLong , Transaction , TxId }
2625import fr .acinq .eclair .Logs .LogCategory
@@ -2690,7 +2689,19 @@ class Channel(val nodeParams: NodeParams, val wallet: OnChainChannelFunder with
26902689 // caution!
26912690 log.warning(" force-closing with fundingTxIndex reset to {} (concurrent funding transactions: {})" , resetFundingTxIndex, data.commitments.active.filter(_.fundingTxIndex > resetFundingTxIndex).map(_.fundingTxId).mkString(" , " ))
26922691 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+ }
26942705 handleLocalError(failure, resetData, Some (c))
26952706 } else {
26962707 handleCommandError(CommandUnavailableInThisState (d.channelId, " forcecloseresetfundingindex" , stateName), c)
0 commit comments