66 "strings"
77 "time"
88
9- cache "github.com/patrickmn/go-cache"
9+ "github.com/patrickmn/go-cache"
1010
1111 "github.com/aptos-labs/aptos-go-sdk"
1212 "github.com/aptos-labs/aptos-go-sdk/api"
@@ -166,7 +166,12 @@ func (l *AptosLogPoller) syncEvent(ctx context.Context, boundAddress aptos.Accou
166166 var resource map [string ]any
167167
168168 if ! found {
169- resource , err = l .client .AccountResource (eventAccountAddress , eventHandle )
169+ var client aptos.AptosRpcClient
170+ client , err = l .getClient ()
171+ if err != nil {
172+ return fmt .Errorf ("failed to get client: %w" , err )
173+ }
174+ resource , err = client .AccountResource (eventAccountAddress , eventHandle )
170175 if err != nil {
171176 return fmt .Errorf ("syncEvent: failed to fetch the resource: %w" , err )
172177 }
@@ -179,7 +184,12 @@ func (l *AptosLogPoller) syncEvent(ctx context.Context, boundAddress aptos.Accou
179184 resource , ok = resourceAny .(map [string ]any )
180185 if ! ok {
181186 l .lggr .Errorw ("Failed to cast cached resource to map[string]any" , "key" , cacheKey )
182- resource , err = l .client .AccountResource (eventAccountAddress , eventHandle )
187+ var client aptos.AptosRpcClient
188+ client , err = l .getClient ()
189+ if err != nil {
190+ return fmt .Errorf ("failed to get client: %w" , err )
191+ }
192+ resource , err = client .AccountResource (eventAccountAddress , eventHandle )
183193 if err != nil {
184194 return fmt .Errorf ("syncEvent: failed to fetch the resource after cache cast failure: %w" , err )
185195 }
@@ -195,13 +205,19 @@ func (l *AptosLogPoller) syncEvent(ctx context.Context, boundAddress aptos.Accou
195205 batchSize := l .config .EventBatchSize
196206 var totalProcessed int = 0
197207
208+ var client aptos.AptosRpcClient
209+ client , err = l .getClient ()
210+ if err != nil {
211+ return fmt .Errorf ("failed to get client: %w" , err )
212+ }
213+
198214eventLoop:
199215 for {
200216 select {
201217 case <- ctx .Done ():
202218 return ctx .Err ()
203219 default :
204- events , err := l . client .EventsByCreationNumber (eventAccountAddress , creationNumber , & latestOffset , & batchSize )
220+ events , err := client .EventsByCreationNumber (eventAccountAddress , creationNumber , & latestOffset , & batchSize )
205221 if err != nil {
206222 l .lggr .Errorw ("syncEvent: failed to fetch new events" , "error" , err )
207223 return fmt .Errorf ("syncEvent: failed to fetch events: %w" , err )
@@ -328,7 +344,11 @@ func (l *AptosLogPoller) computeEventAccountAddress(boundAddress aptos.AccountAd
328344 Args : [][]byte {},
329345 }
330346
331- data , err := l .client .View (viewPayload )
347+ client , err := l .getClient ()
348+ if err != nil {
349+ return eventAccountAddress , err
350+ }
351+ data , err := client .View (viewPayload )
332352 if err != nil {
333353 return eventAccountAddress , fmt .Errorf ("failed to call view function: %+w" , err )
334354 }
@@ -354,7 +374,12 @@ func (l *AptosLogPoller) getBlockHead(version uint64) (types.Head, error) {
354374 block , ok = cachedBlockAny .(* api.Block )
355375 if ! ok {
356376 l .lggr .Errorw ("Failed to cast cached block to *api.Block" , "key" , cacheKey )
357- block , err = l .client .BlockByVersion (version , false )
377+ var client aptos.AptosRpcClient
378+ client , err = l .getClient ()
379+ if err != nil {
380+ return types.Head {}, fmt .Errorf ("failed to get client: %w" , err )
381+ }
382+ block , err = client .BlockByVersion (version , false )
358383 if err != nil {
359384 return types.Head {}, fmt .Errorf ("failed to get block by version after cache cast failure: %w" , err )
360385 }
@@ -363,7 +388,12 @@ func (l *AptosLogPoller) getBlockHead(version uint64) (types.Head, error) {
363388 l .lggr .Debugw ("Using cached block" , "version" , version )
364389 }
365390 } else {
366- block , err = l .client .BlockByVersion (version , false )
391+ var client aptos.AptosRpcClient
392+ client , err = l .getClient ()
393+ if err != nil {
394+ return types.Head {}, fmt .Errorf ("failed to get client: %w" , err )
395+ }
396+ block , err = client .BlockByVersion (version , false )
367397 if err != nil {
368398 return types.Head {}, fmt .Errorf ("failed to get block by version: %w" , err )
369399 }
0 commit comments