6
6
"fmt"
7
7
"math/big"
8
8
"net/http"
9
+ "strings"
9
10
"sync"
10
11
"time"
11
12
@@ -14,6 +15,7 @@ import (
14
15
"github.com/ethereum-optimism/optimism/op-service/txmgr/metrics"
15
16
"github.com/ethereum/go-ethereum/accounts/abi/bind"
16
17
"github.com/ethereum/go-ethereum/common"
18
+ "github.com/ethereum/go-ethereum/core/vm"
17
19
"github.com/ethereum/go-ethereum/log"
18
20
"github.com/urfave/cli/v2"
19
21
@@ -286,12 +288,12 @@ func (p *Prover) eventLoop() {
286
288
select {
287
289
case <- p .ctx .Done ():
288
290
return
291
+ case req := <- p .proofContestCh :
292
+ p .withRetry (func () error { return p .contestProofOp (req ) })
289
293
case proofWithHeader := <- p .proofGenerationCh :
290
294
p .withRetry (func () error { return p .submitProofOp (proofWithHeader ) })
291
295
case req := <- p .proofSubmissionCh :
292
296
p .withRetry (func () error { return p .requestProofOp (req .Event , req .Tier ) })
293
- case req := <- p .proofContestCh :
294
- p .withRetry (func () error { return p .contestProofOp (req ) })
295
297
case <- p .proveNotify :
296
298
if err := p .proveOp (); err != nil {
297
299
log .Error ("Prove new blocks error" , "error" , err )
@@ -320,7 +322,7 @@ func (p *Prover) Close(ctx context.Context) {
320
322
p .wg .Wait ()
321
323
}
322
324
323
- // proveOp iterates through BlockProposed events
325
+ // proveOp iterates through BlockProposed events.
324
326
func (p * Prover ) proveOp () error {
325
327
iter , err := eventIterator .NewBlockProposedIterator (p .ctx , & eventIterator.BlockProposedIteratorConfig {
326
328
Client : p .rpc .L1 ,
@@ -347,6 +349,15 @@ func (p *Prover) contestProofOp(req *proofProducer.ContestRequestBody) error {
347
349
req .Meta ,
348
350
req .Tier ,
349
351
); err != nil {
352
+ if strings .Contains (err .Error (), vm .ErrExecutionReverted .Error ()) {
353
+ log .Error (
354
+ "Proof contest submission reverted" ,
355
+ "blockID" , req .BlockID ,
356
+ "minTier" , req .Meta .MinTier ,
357
+ "error" , err ,
358
+ )
359
+ return nil
360
+ }
350
361
log .Error (
351
362
"Request new proof contest error" ,
352
363
"blockID" , req .BlockID ,
@@ -385,6 +396,15 @@ func (p *Prover) submitProofOp(proofWithHeader *proofProducer.ProofWithHeader) e
385
396
}
386
397
387
398
if err := submitter .SubmitProof (p .ctx , proofWithHeader ); err != nil {
399
+ if strings .Contains (err .Error (), vm .ErrExecutionReverted .Error ()) {
400
+ log .Error (
401
+ "Proof submission reverted" ,
402
+ "blockID" , proofWithHeader .BlockID ,
403
+ "minTier" , proofWithHeader .Meta .MinTier ,
404
+ "error" , err ,
405
+ )
406
+ return nil
407
+ }
388
408
log .Error (
389
409
"Submit proof error" ,
390
410
"blockID" , proofWithHeader .BlockID ,
0 commit comments