Skip to content

Commit 288db9e

Browse files
feat: handle new batch log on separate go routine (yetanotherco#855)
Co-authored-by: Mariano A. Nicolini <mariano.nicolini.91@gmail.com>
1 parent 4868b37 commit 288db9e

1 file changed

Lines changed: 30 additions & 26 deletions

File tree

operator/pkg/operator.go

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -153,36 +153,40 @@ func (o *Operator) Start(ctx context.Context) error {
153153
o.Logger.Fatal("Could not subscribe to new tasks")
154154
}
155155
case newBatchLog := <-o.NewTaskCreatedChan:
156-
err := o.ProcessNewBatchLog(newBatchLog)
157-
if err != nil {
158-
o.Logger.Infof("batch %x did not verify. Err: %v", newBatchLog.BatchMerkleRoot, err)
159-
continue
160-
}
161-
batchIdentifier := append(newBatchLog.BatchMerkleRoot[:], newBatchLog.SenderAddress[:]...)
162-
var batchIdentifierHash = *(*[32]byte)(crypto.Keccak256(batchIdentifier))
163-
164-
responseSignature := o.SignTaskResponse(batchIdentifierHash)
165-
o.Logger.Debugf("responseSignature about to send: %x", responseSignature)
166-
167-
signedTaskResponse := types.SignedTaskResponse{
168-
BatchIdentifierHash: batchIdentifierHash,
169-
BatchMerkleRoot: newBatchLog.BatchMerkleRoot,
170-
SenderAddress: newBatchLog.SenderAddress,
171-
BlsSignature: *responseSignature,
172-
OperatorId: o.OperatorId,
173-
}
174-
175-
// o.Logger.Infof("Signed Task Response to send: %+v", signedTaskResponse)
176-
o.Logger.Infof("Signed Task Response to send: BatchIdentifierHash=%s, BatchMerkleRoot=%s, SenderAddress=%s",
177-
hex.EncodeToString(signedTaskResponse.BatchIdentifierHash[:]),
178-
hex.EncodeToString(signedTaskResponse.BatchMerkleRoot[:]),
179-
hex.EncodeToString(signedTaskResponse.SenderAddress[:]),
180-
)
181-
go o.aggRpcClient.SendSignedTaskResponseToAggregator(&signedTaskResponse)
156+
go o.HandleNewBatchLog(newBatchLog)
182157
}
183158
}
184159
}
185160

161+
func (o *Operator) HandleNewBatchLog(newBatchLog *servicemanager.ContractAlignedLayerServiceManagerNewBatch) {
162+
err := o.ProcessNewBatchLog(newBatchLog)
163+
if err != nil {
164+
o.Logger.Infof("batch %x did not verify. Err: %v", newBatchLog.BatchMerkleRoot, err)
165+
return
166+
}
167+
batchIdentifier := append(newBatchLog.BatchMerkleRoot[:], newBatchLog.SenderAddress[:]...)
168+
var batchIdentifierHash = *(*[32]byte)(crypto.Keccak256(batchIdentifier))
169+
170+
responseSignature := o.SignTaskResponse(batchIdentifierHash)
171+
o.Logger.Debugf("responseSignature about to send: %x", responseSignature)
172+
173+
signedTaskResponse := types.SignedTaskResponse{
174+
BatchIdentifierHash: batchIdentifierHash,
175+
BatchMerkleRoot: newBatchLog.BatchMerkleRoot,
176+
SenderAddress: newBatchLog.SenderAddress,
177+
BlsSignature: *responseSignature,
178+
OperatorId: o.OperatorId,
179+
}
180+
181+
o.Logger.Infof("Signed Task Response to send: BatchIdentifierHash=%s, BatchMerkleRoot=%s, SenderAddress=%s",
182+
hex.EncodeToString(signedTaskResponse.BatchIdentifierHash[:]),
183+
hex.EncodeToString(signedTaskResponse.BatchMerkleRoot[:]),
184+
hex.EncodeToString(signedTaskResponse.SenderAddress[:]),
185+
)
186+
187+
o.aggRpcClient.SendSignedTaskResponseToAggregator(&signedTaskResponse)
188+
}
189+
186190
// Takes a NewTaskCreatedLog struct as input and returns a TaskResponseHeader struct.
187191
// The TaskResponseHeader struct is the struct that is signed and sent to the contract as a task response.
188192
func (o *Operator) ProcessNewBatchLog(newBatchLog *servicemanager.ContractAlignedLayerServiceManagerNewBatch) error {

0 commit comments

Comments
 (0)