|
8 | 8 |
|
9 | 9 | "github.com/ethereum/go-ethereum/accounts/abi/bind" |
10 | 10 | ethcommon "github.com/ethereum/go-ethereum/common" |
| 11 | + "github.com/ethereum/go-ethereum/event" |
11 | 12 |
|
12 | 13 | "github.com/ethereum/go-ethereum/core/types" |
13 | 14 | servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" |
@@ -116,23 +117,28 @@ func (s *AvsSubscriber) SubscribeToNewTasksV2(newTaskCreatedChan chan *servicema |
116 | 117 | // Handle errors and resubscribe |
117 | 118 | go func() { |
118 | 119 | var err1, err2 error |
119 | | - for err1 == nil || err2 == nil { |
| 120 | + var auxSub, auxSubFallback event.Subscription |
| 121 | + for err1 == nil || err2 == nil { //while one is active |
120 | 122 | select { |
121 | 123 | case err := <-sub.Err(): |
122 | 124 | s.logger.Warn("Error in new task subscription", "err", err) |
| 125 | + s.logger.Info("failed states:", "err1", err1, "err2", err2) |
123 | 126 |
|
124 | | - auxSub, err1 := SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil, retry.NetworkRetryParams()) |
| 127 | + auxSub, err1 = SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil, retry.NetworkRetryParams()) |
125 | 128 | if err1 == nil { |
126 | 129 | //sub.Unsubscribe() |
127 | 130 | sub = auxSub // update the subscription only if it was successful |
| 131 | + s.logger.Info("Resubscribed to fallback new task subscription") |
128 | 132 | } |
129 | 133 | case err := <-subFallback.Err(): |
| 134 | + s.logger.Info("failed states:", "err1", err1, "err2", err2) |
130 | 135 | s.logger.Warn("Error in fallback new task subscription", "err", err) |
131 | 136 |
|
132 | | - auxSubFallback, err2 := SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil, retry.NetworkRetryParams()) |
| 137 | + auxSubFallback, err2 = SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil, retry.NetworkRetryParams()) |
133 | 138 | if err2 == nil { |
134 | 139 | //subFallback.Unsubscribe() |
135 | 140 | subFallback = auxSubFallback // update the subscription only if it was successful |
| 141 | + s.logger.Info("Resubscribed to fallback new task subscription") |
136 | 142 | } |
137 | 143 | } |
138 | 144 | } |
@@ -197,24 +203,30 @@ func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicema |
197 | 203 |
|
198 | 204 | // Handle errors and resubscribe |
199 | 205 | go func() { |
| 206 | + s.logger.Info("Starting error handling goroutine") |
200 | 207 | var err1, err2 error |
201 | | - for err1 == nil || err2 == nil { |
| 208 | + var auxSub, auxSubFallback event.Subscription |
| 209 | + for err1 == nil || err2 == nil { //while one is active |
202 | 210 | select { |
203 | 211 | case err := <-sub.Err(): |
204 | 212 | s.logger.Warn("Error in new task subscription", "err", err) |
| 213 | + s.logger.Info("failed states:", "err1", err1, "err2", err2) |
205 | 214 |
|
206 | | - auxSub, err1 := SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil, retry.NetworkRetryParams()) |
| 215 | + auxSub, err1 = SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil, retry.NetworkRetryParams()) |
207 | 216 | if err1 == nil { |
208 | 217 | //sub.Unsubscribe() |
209 | 218 | sub = auxSub // update the subscription only if it was successful |
| 219 | + s.logger.Info("Resubscribed to fallback new task subscription") |
210 | 220 | } |
211 | 221 | case err := <-subFallback.Err(): |
212 | 222 | s.logger.Warn("Error in fallback new task subscription", "err", err) |
| 223 | + s.logger.Info("failed states:", "err1", err1, "err2", err2) |
213 | 224 |
|
214 | | - auxSubFallback, err2 := SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil, retry.NetworkRetryParams()) |
| 225 | + auxSubFallback, err2 = SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil, retry.NetworkRetryParams()) |
215 | 226 | if err2 == nil { |
216 | 227 | //subFallback.Unsubscribe() |
217 | 228 | subFallback = auxSubFallback // update the subscription only if it was successful |
| 229 | + s.logger.Info("Resubscribed to fallback new task subscription") |
218 | 230 | } |
219 | 231 | } |
220 | 232 | } |
|
0 commit comments