Skip to content

Commit 7c84332

Browse files
committed
fix: add type assertion safety in tournament result parsing
1 parent 425e742 commit 7c84332

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

internal/prt/itournament_adapter.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ func NewITournamentAdapter(
4545
func (a *ITournamentAdapterImpl) Result(opts *bind.CallOpts) (bool, [32]byte, [32]byte, error) {
4646
result, err := a.tournament.ArbitrationResult(opts)
4747
// ArbitrationResult reverts when it has finished with no winners
48-
if info, ok := ExtractJsonErrorInfo(err); ok && info.HasData && info.Data == TournamentFailedNoWinner {
49-
return true, [32]byte{}, [32]byte{}, nil
48+
if info, ok := ExtractJsonErrorInfo(err); ok && info.HasData {
49+
if dataStr, ok := info.Data.(string); ok && dataStr == TournamentFailedNoWinner {
50+
return true, [32]byte{}, [32]byte{}, nil
51+
}
5052
}
5153
return result.Finished, result.WinnerCommitment, result.FinalState, err
5254
}

internal/prt/prt.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,14 +502,14 @@ func (s *Service) fetchTournamentData(
502502
t, err = s.createTournament(ctx, app, epoch, level,
503503
parentMatchIDHash, parentTournamentAddress, tournamentAddress)
504504
if err != nil {
505-
s.Logger.Error("failed to create new tournament", "application", "level", level, app.Name,
505+
s.Logger.Error("failed to create new tournament", "level", level, "application", app.Name,
506506
"epoch", epoch.Index, "tournament_address", tournamentAddress.String(), "error", err)
507507
return err
508508
}
509509
} else if t.FinishedAtBlock == 0 {
510510
err = s.updateTournamentIfFinished(ctx, app, epoch, level, adapter, t, mostRecentBlock)
511511
if err != nil {
512-
s.Logger.Error("failed to check if tournament was finished", "application", "level", level, app.Name,
512+
s.Logger.Error("failed to check if tournament was finished", "level", level, "application", app.Name,
513513
"epoch", epoch.Index, "tournament_address", tournamentAddress.String(), "error", err)
514514
return err
515515
}

0 commit comments

Comments
 (0)