@@ -301,6 +301,12 @@ func handleSubmissionResult[T any](
301301
302302 case coreda .StatusContextCanceled :
303303 m .logger .Info ().Int ("attempt" , retryStrategy .attempt ).Msg ("DA layer submission canceled due to context cancellation" )
304+
305+ // Record canceled submission in DA visualization server
306+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
307+ daVisualizationServer .RecordSubmission (& res , retryStrategy .gasPrice , uint64 (len (remaining )))
308+ }
309+
304310 return submissionOutcome [T ]{
305311 RemainingItems : remaining ,
306312 RemainingMarshal : marshaled ,
@@ -365,6 +371,12 @@ func handleMempoolFailure[T any](
365371 m .logger .Error ().Str ("error" , res .Message ).Int ("attempt" , attempt ).Msg ("DA layer submission failed" )
366372
367373 m .recordDAMetrics ("submission" , DAModeFail )
374+
375+ // Record failed submission in DA visualization server
376+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
377+ daVisualizationServer .RecordSubmission (res , retryStrategy .gasPrice , uint64 (len (remaining )))
378+ }
379+
368380 retryStrategy .BackoffOnMempool (int (m .config .DA .MempoolTTL ), m .config .DA .BlockTime .Duration , m .gasMultiplier )
369381
370382 m .logger .Info ().Dur ("backoff" , retryStrategy .backoff ).Float64 ("gasPrice" , retryStrategy .gasPrice ).Msg ("retrying DA layer submission with" )
@@ -391,6 +403,17 @@ func handleTooBigError[T any](
391403
392404 m .recordDAMetrics ("submission" , DAModeFail )
393405
406+ // Record failed submission in DA visualization server (create a result for TooBig error)
407+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
408+ tooBigResult := & coreda.ResultSubmit {
409+ BaseResult : coreda.BaseResult {
410+ Code : coreda .StatusTooBig ,
411+ Message : "blob too big" ,
412+ },
413+ }
414+ daVisualizationServer .RecordSubmission (tooBigResult , retryStrategy .gasPrice , uint64 (len (remaining )))
415+ }
416+
394417 if len (remaining ) > 1 {
395418 totalSubmitted , err := submitWithRecursiveSplitting (m , ctx , remaining , marshaled , retryStrategy .gasPrice , postSubmit , itemType , namespace )
396419 if err != nil {
@@ -443,6 +466,12 @@ func handleGenericFailure[T any](
443466 m .logger .Error ().Str ("error" , res .Message ).Int ("attempt" , attempt ).Msg ("DA layer submission failed" )
444467
445468 m .recordDAMetrics ("submission" , DAModeFail )
469+
470+ // Record failed submission in DA visualization server
471+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
472+ daVisualizationServer .RecordSubmission (res , retryStrategy .gasPrice , uint64 (len (remaining )))
473+ }
474+
446475 retryStrategy .BackoffOnFailure ()
447476
448477 return submissionOutcome [T ]{
@@ -643,12 +672,22 @@ func processBatch[T any](
643672 postSubmit (submitted , & batchRes , gasPrice )
644673 m .logger .Info ().Int ("batchSize" , len (batch .Items )).Uint64 ("submittedCount" , batchRes .SubmittedCount ).Msg ("successfully submitted batch to DA layer" )
645674
675+ // Record successful submission in DA visualization server
676+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
677+ daVisualizationServer .RecordSubmission (& batchRes , gasPrice , batchRes .SubmittedCount )
678+ }
679+
646680 return batchResult [T ]{
647681 action : batchActionSubmitted ,
648682 submittedCount : int (batchRes .SubmittedCount ),
649683 }
650684 }
651685
686+ // Record failed submission in DA visualization server for all error cases
687+ if daVisualizationServer := server .GetDAVisualizationServer (); daVisualizationServer != nil {
688+ daVisualizationServer .RecordSubmission (& batchRes , gasPrice , uint64 (len (batch .Items )))
689+ }
690+
652691 if batchRes .Code == coreda .StatusTooBig && len (batch .Items ) > 1 {
653692 // Batch is too big - let the caller handle splitting
654693 m .logger .Info ().Int ("batchSize" , len (batch .Items )).Msg ("batch too big, returning to caller for splitting" )
0 commit comments