@@ -52,15 +52,15 @@ func init() {
5252type systemsManagerContractClient interface {
5353 RewardEpochTimingFromChain () (* utils.EpochTimingConfig , error )
5454
55- RewardEpochStartedListener (epochClientDB , * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerRewardEpochStarted
55+ RewardEpochStartedListener (ctx context. Context , db epochClientDB , config * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerRewardEpochStarted
5656
57- VotePowerBlockSelectedListener (epochClientDB , * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerVotePowerBlockSelected
57+ VotePowerBlockSelectedListener (ctx context. Context , db epochClientDB , config * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerVotePowerBlockSelected
5858 SignNewSigningPolicy (ctx context.Context , epochID * big.Int , policy []byte ) <- chan shared.ExecuteStatus [any ]
5959
60- SignUptimeVoteEnabledListener (epochClientDB , * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerSignUptimeVoteEnabled
60+ SignUptimeVoteEnabledListener (ctx context. Context , db epochClientDB , config * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerSignUptimeVoteEnabled
6161 SignUptimeVote (ctx context.Context , epochID * big.Int ) <- chan shared.ExecuteStatus [any ]
6262
63- UptimeVoteSignedListener (epochClientDB , * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerUptimeVoteSigned
63+ UptimeVoteSignedListener (ctx context. Context , db epochClientDB , config * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerUptimeVoteSigned
6464 SignRewards (ctx context.Context , epochID * big.Int , rewardHash * common.Hash , weightClaims int ) <- chan shared.ExecuteStatus [any ]
6565 IsRewardHashSigned (* big.Int ) bool
6666
@@ -190,7 +190,7 @@ func (s *systemsManagerContractClientImpl) GetCurrentRewardEpochID() <-chan shar
190190 }, shared .MaxTxSendRetries , shared .TxRetryInterval )
191191}
192192
193- func (s * systemsManagerContractClientImpl ) RewardEpochStartedListener (db epochClientDB , rewardEpochTiming * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerRewardEpochStarted {
193+ func (s * systemsManagerContractClientImpl ) RewardEpochStartedListener (ctx context. Context , db epochClientDB , rewardEpochTiming * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerRewardEpochStarted {
194194 out := make (chan * system.FlareSystemsManagerRewardEpochStarted )
195195 topic0 , err := chain .EventIDFromMetadata (system .FlareSystemsManagerMetaData , "RewardEpochStarted" )
196196 if err != nil {
@@ -202,9 +202,13 @@ func (s *systemsManagerContractClientImpl) RewardEpochStartedListener(db epochCl
202202 ticker := time .NewTicker (shared .EventListenerInterval )
203203 eventRangeStart := rewardEpochTiming .StartTime (rewardEpochTiming .EpochIndex (time .Now ())).Unix () - 60 * 60 // Expected epoch start - 1h
204204 for {
205- <- ticker .C
205+ select {
206+ case <- ctx .Done ():
207+ return
208+ case <- ticker .C :
209+ }
206210 now := time .Now ().Unix ()
207- logs , err := db .FetchLogsByAddressAndTopic0Timestamp (context . Background () , s .address , topic0 , eventRangeStart , now )
211+ logs , err := db .FetchLogsByAddressAndTopic0Timestamp (ctx , s .address , topic0 , eventRangeStart , now )
208212 if err != nil {
209213 logger .Errorf ("Error fetching logs %v" , err )
210214 continue
@@ -231,7 +235,7 @@ func (s *systemsManagerContractClientImpl) parseRewardEpochStartedEvent(dbLog da
231235 return s .flareSystemsManager .ParseRewardEpochStarted (* contractLog )
232236}
233237
234- func (s * systemsManagerContractClientImpl ) VotePowerBlockSelectedListener (db epochClientDB , rewardEpochTiming * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerVotePowerBlockSelected {
238+ func (s * systemsManagerContractClientImpl ) VotePowerBlockSelectedListener (ctx context. Context , db epochClientDB , rewardEpochTiming * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerVotePowerBlockSelected {
235239 out := make (chan * system.FlareSystemsManagerVotePowerBlockSelected )
236240 topic0 , err := chain .EventIDFromMetadata (system .FlareSystemsManagerMetaData , "VotePowerBlockSelected" )
237241 if err != nil {
@@ -243,9 +247,13 @@ func (s *systemsManagerContractClientImpl) VotePowerBlockSelectedListener(db epo
243247 ticker := time .NewTicker (shared .EventListenerInterval )
244248 eventRangeStart := rewardEpochTiming .StartTime (rewardEpochTiming .EpochIndex (time .Now ()) - 1 ).Unix ()
245249 for {
246- <- ticker .C
250+ select {
251+ case <- ctx .Done ():
252+ return
253+ case <- ticker .C :
254+ }
247255 now := time .Now ().Unix ()
248- logs , err := db .FetchLogsByAddressAndTopic0Timestamp (context . Background () , s .address , topic0 , eventRangeStart , now )
256+ logs , err := db .FetchLogsByAddressAndTopic0Timestamp (ctx , s .address , topic0 , eventRangeStart , now )
249257 if err != nil {
250258 logger .Errorf ("Error fetching logs %v" , err )
251259 continue
@@ -276,7 +284,7 @@ func (s *systemsManagerContractClientImpl) RewardEpochTimingFromChain() (*utils.
276284 return shared .RewardEpochTimingFromChain (s .flareSystemsManager )
277285}
278286
279- func (s * systemsManagerContractClientImpl ) SignUptimeVoteEnabledListener (db epochClientDB , epoch * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerSignUptimeVoteEnabled {
287+ func (s * systemsManagerContractClientImpl ) SignUptimeVoteEnabledListener (ctx context. Context , db epochClientDB , epoch * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerSignUptimeVoteEnabled {
280288 out := make (chan * system.FlareSystemsManagerSignUptimeVoteEnabled )
281289 topic0 , err := chain .EventIDFromMetadata (system .FlareSystemsManagerMetaData , "SignUptimeVoteEnabled" )
282290 if err != nil {
@@ -289,11 +297,15 @@ func (s *systemsManagerContractClientImpl) SignUptimeVoteEnabledListener(db epoc
289297 startEpoch := epoch .EpochIndex (time .Now ())
290298 eventRangeStart := epoch .StartTime (startEpoch ).Unix ()
291299 for {
292- <- ticker .C
300+ select {
301+ case <- ctx .Done ():
302+ return
303+ case <- ticker .C :
304+ }
293305 now := time .Now ()
294306 currentEpoch := epoch .EpochIndex (now )
295307
296- logs , err := db .FetchLogsByAddressAndTopic0Timestamp (context . Background () , s .address , topic0 , eventRangeStart , now .Unix ())
308+ logs , err := db .FetchLogsByAddressAndTopic0Timestamp (ctx , s .address , topic0 , eventRangeStart , now .Unix ())
297309 if err != nil {
298310 logger .Errorf ("Error fetching logs %v" , err )
299311 continue
@@ -377,7 +389,7 @@ func (s *systemsManagerContractClientImpl) sendSignUptimeVote(ctx context.Contex
377389 return nil
378390}
379391
380- func (s * systemsManagerContractClientImpl ) UptimeVoteSignedListener (db epochClientDB , epoch * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerUptimeVoteSigned {
392+ func (s * systemsManagerContractClientImpl ) UptimeVoteSignedListener (ctx context. Context , db epochClientDB , epoch * utils.EpochTimingConfig ) <- chan * system.FlareSystemsManagerUptimeVoteSigned {
381393 out := make (chan * system.FlareSystemsManagerUptimeVoteSigned )
382394 topic0 , err := chain .EventIDFromMetadata (system .FlareSystemsManagerMetaData , "UptimeVoteSigned" )
383395 if err != nil {
@@ -390,11 +402,15 @@ func (s *systemsManagerContractClientImpl) UptimeVoteSignedListener(db epochClie
390402 startEpoch := epoch .EpochIndex (time .Now ())
391403 eventRangeStart := epoch .StartTime (startEpoch ).Unix ()
392404 for {
393- <- ticker .C
405+ select {
406+ case <- ctx .Done ():
407+ return
408+ case <- ticker .C :
409+ }
394410 now := time .Now ()
395411 currentEpoch := epoch .EpochIndex (now )
396412
397- logs , err := db .FetchLogsByAddressAndTopic0Timestamp (context . Background () , s .address , topic0 , eventRangeStart , now .Unix ())
413+ logs , err := db .FetchLogsByAddressAndTopic0Timestamp (ctx , s .address , topic0 , eventRangeStart , now .Unix ())
398414 if err != nil {
399415 logger .Errorf ("Error fetching logs %v" , err )
400416 continue
0 commit comments