@@ -1421,9 +1421,7 @@ class ELUpdater(
14211421 actualTransferWithdrawals,
14221422 c2eLogs,
14231423 expectedTransfers,
1424- actualDepositedTransactions,
14251424 transferTransactions,
1426- options,
14271425 prevWithdrawalIndex,
14281426 strictC2ETransfersActivated
14291427 ).leftMap(
@@ -1523,9 +1521,7 @@ class ELUpdater(
15231521 actualWithdrawals : Seq [Withdrawal ],
15241522 actualTransferLogs : List [GetLogsResponseEntry ],
15251523 expectedTransfers : Seq [ContractTransfer ],
1526- depositedTransactions : Seq [DepositedTransaction ],
15271524 transferTransactions : Seq [DepositedTransaction ],
1528- options : ChainContractOptions ,
15291525 prevWithdrawalIndex : Long ,
15301526 strictC2ETransfersActivated : Boolean
15311527 ): Either [String , Long ] = {
@@ -1570,12 +1566,28 @@ class ELUpdater(
15701566 case expectedTransfer : ContractTransfer .NativeViaDeposit =>
15711567 if strictC2ETransfersActivated then {
15721568 actualTransferLogs match {
1573- case Nil => s " $logPrefix Not found EL transfer log, expected $expectedTransfer transfer " .asLeft
1569+ case Nil =>
1570+ val canSkipFailedTransfer = strictC2ETransfersActivated && failedTransfers.contains(expectedTransfer)
1571+ if canSkipFailedTransfer then {
1572+ logger.debug(s " Transfer $expectedTransfer has failed, skipping " )
1573+ prevWithdrawalIndex.asRight
1574+ } else s " $logPrefix Not found EL transfer log, expected $expectedTransfer transfer " .asLeft
15741575 case actualTransferLog :: restActualTransferLogs =>
15751576 StandardBridge .ETHBridgeFinalized
15761577 .decodeLog(actualTransferLog)
15771578 .flatMap(validateC2ENativeTransfer(actualTransferLog.logIndex, _, expectedTransfer)) match {
1578- case Left (e) => e.asLeft
1579+ case Left (e) =>
1580+ val canSkipFailedTransfer = strictC2ETransfersActivated && failedTransfers.contains(expectedTransfer)
1581+ if canSkipFailedTransfer then {
1582+ logger.debug(s " Transfer $expectedTransfer has failed, skipping " )
1583+ loop(
1584+ actualWithdrawals,
1585+ actualTransferLog :: restActualTransferLogs,
1586+ restExpectedTransfers,
1587+ prevWithdrawalIndex,
1588+ currTransferNumber + 1
1589+ )
1590+ } else e.asLeft
15791591 case _ => loop(actualWithdrawals, restActualTransferLogs, restExpectedTransfers, prevWithdrawalIndex, currTransferNumber + 1 )
15801592 }
15811593 }
0 commit comments