@@ -304,15 +304,24 @@ export function handleRequestSubmitted(event: RequestSubmitted): void {
304304 let newStatus = getExtendedStatus ( item . disputed , item . status ) ;
305305
306306 let requestIndex = item . numberOfRequests . minus ( BigInt . fromI32 ( 1 ) ) ;
307- let requestInfo = tcr . getRequestInfo ( event . params . _itemID , requestIndex ) ;
307+ let requestInfo = tcr . try_getRequestInfo ( event . params . _itemID , requestIndex ) ;
308+ if ( requestInfo . reverted ) {
309+ log . error (
310+ `getRequestInfo reverted for LItem : {}, requestIndex : {}` ,
311+ [ graphItemID , requestIndex . toString ( ) ] ,
312+ ) ;
313+ item . save ( ) ;
314+ return ;
315+ }
316+
308317 let requestID = graphItemID + '-' + requestIndex . toString ( ) ;
309318
310319 let request = new LRequest ( requestID ) ;
311320 request . disputed = false ;
312321 request . arbitrator = tcr . arbitrator ( ) ;
313322 request . arbitratorExtraData = tcr . arbitratorExtraData ( ) ;
314323 request . challenger = ZERO_ADDRESS ;
315- request . requester = requestInfo . value4 [ 1 ] ;
324+ request . requester = requestInfo . value . value4 [ 1 ] ;
316325 request . item = item . id ;
317326 request . registry = registry . id ;
318327 request . registryAddress = event . address ;
@@ -453,7 +462,16 @@ export function handleRequestChallenged(event: Dispute): void {
453462 let newStatus = getExtendedStatus ( item . disputed , item . status ) ;
454463
455464 let requestIndex = item . numberOfRequests . minus ( BigInt . fromI32 ( 1 ) ) ;
456- let requestInfo = tcr . getRequestInfo ( itemID , requestIndex ) ;
465+ let requestInfo = tcr . try_getRequestInfo ( itemID , requestIndex ) ;
466+ if ( requestInfo . reverted ) {
467+ log . error (
468+ `Failed to fetch request info for LItem : {}, requestIndex : {}` ,
469+ [ graphItemID , requestIndex . toString ( ) ] ,
470+ ) ;
471+ item . save ( ) ;
472+ return ;
473+ }
474+
457475 let requestID = graphItemID + '-' + requestIndex . toString ( ) ;
458476 let request = LRequest . load ( requestID ) ;
459477 if ( ! request ) {
@@ -462,7 +480,7 @@ export function handleRequestChallenged(event: Dispute): void {
462480 }
463481
464482 request . disputed = true ;
465- request . challenger = requestInfo . value4 [ 2 ] ;
483+ request . challenger = requestInfo . value . value4 [ 2 ] ;
466484 request . numberOfRounds = BigInt . fromI32 ( 2 ) ;
467485 request . disputeID = event . params . _disputeID ;
468486
@@ -641,7 +659,15 @@ export function handleStatusUpdated(event: ItemStatusChange): void {
641659 item . latestRequestResolutionTime = event . block . timestamp ;
642660
643661 let requestIndex = item . numberOfRequests . minus ( BigInt . fromI32 ( 1 ) ) ;
644- let requestInfo = tcr . getRequestInfo ( event . params . _itemID , requestIndex ) ;
662+ let requestInfo = tcr . try_getRequestInfo ( event . params . _itemID , requestIndex ) ;
663+ if ( requestInfo . reverted ) {
664+ log . error (
665+ `Failed to fetch request info for LItem : {}, requestIndex : {}` ,
666+ [ graphItemID , requestIndex . toString ( ) ] ,
667+ ) ;
668+ item . save ( ) ;
669+ return ;
670+ }
645671
646672 let requestID = graphItemID + '-' + requestIndex . toString ( ) ;
647673 let request = LRequest . load ( requestID ) ;
@@ -654,7 +680,7 @@ export function handleStatusUpdated(event: ItemStatusChange): void {
654680 request . resolutionTime = event . block . timestamp ;
655681 request . resolutionTx = event . transaction . hash ;
656682 // requestInfo.value6 is request.ruling.
657- request . disputeOutcome = getFinalRuling ( requestInfo . value6 ) ;
683+ request . disputeOutcome = getFinalRuling ( requestInfo . value . value6 ) ;
658684
659685 // Iterate over every contribution and mark it as withdrawable if it is.
660686 // Start from the second round as the first is automatically withdrawn
@@ -685,11 +711,11 @@ export function handleStatusUpdated(event: ItemStatusChange): void {
685711 return ;
686712 }
687713
688- if ( requestInfo . value6 == NO_RULING_CODE ) {
714+ if ( requestInfo . value . value6 == NO_RULING_CODE ) {
689715 // The final ruling is refuse to rule. There is no winner
690716 // or loser so every contribution is withdrawable.
691717 contribution . withdrawable = true ;
692- } else if ( requestInfo . value6 == REQUESTER_CODE ) {
718+ } else if ( requestInfo . value . value6 == REQUESTER_CODE ) {
693719 // The requester won so only contributions to the requester
694720 // are withdrawable.
695721 // The only exception is in the case the last round the loser
0 commit comments