Commit 9989997c authored by Joshua Gutow's avatar Joshua Gutow

op-challenger: Add logging

parent 61cb88ac
...@@ -3,6 +3,8 @@ package fault ...@@ -3,6 +3,8 @@ package fault
import ( import (
"context" "context"
"sync" "sync"
"github.com/ethereum/go-ethereum/log"
) )
type Agent struct { type Agent struct {
...@@ -12,15 +14,17 @@ type Agent struct { ...@@ -12,15 +14,17 @@ type Agent struct {
trace TraceProvider trace TraceProvider
responder Responder responder Responder
maxDepth int maxDepth int
log log.Logger
} }
func NewAgent(game Game, maxDepth int, trace TraceProvider, responder Responder) Agent { func NewAgent(game Game, maxDepth int, trace TraceProvider, responder Responder, log log.Logger) Agent {
return Agent{ return Agent{
game: game, game: game,
solver: NewSolver(maxDepth, trace), solver: NewSolver(maxDepth, trace),
trace: trace, trace: trace,
responder: responder, responder: responder,
maxDepth: maxDepth, maxDepth: maxDepth,
log: log,
} }
} }
...@@ -45,12 +49,23 @@ func (a *Agent) PerformActions() { ...@@ -45,12 +49,23 @@ func (a *Agent) PerformActions() {
// move determines & executes the next move given a claim pair // move determines & executes the next move given a claim pair
func (a *Agent) move(claim, parent Claim) error { func (a *Agent) move(claim, parent Claim) error {
move, err := a.solver.NextMove(claim) nextMove, err := a.solver.NextMove(claim)
if err != nil || move == nil { if err != nil {
a.log.Warn("Failed to execute the next move", "err", err)
return err return err
} }
if a.game.IsDuplicate(*move) { if nextMove == nil {
a.log.Info("No next move")
return nil
}
move := *nextMove
log := a.log.New("is_defend", move.DefendsParent(), "depth", move.Depth(), "index_at_depth", move.IndexAtDepth(), "value", move.Value,
"letter", string(move.Value[31:]), "trace_index", move.Value[30],
"parent_letter", string(claim.Value[31:]), "parent_trace_index", claim.Value[30])
if a.game.IsDuplicate(move) {
log.Debug("Duplicate move")
return nil return nil
} }
return a.responder.Respond(context.TODO(), *move) log.Info("Performing move")
return a.responder.Respond(context.TODO(), move)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment