11/* eslint-disable prefer-const */
22import { log } from "@graphprotocol/graph-ts" ;
3- import { Item , ItemProp , Request , Registry } from "../generated/schema" ;
3+ import { Item , Request , Registry } from "../generated/schema" ;
44
55import {
66 ItemStatusChange ,
@@ -11,18 +11,10 @@ import {
1111 Curate ,
1212 DisputeRequest ,
1313} from "../generated/templates/Curate/Curate" ;
14- import {
15- CLEARING_REQUESTED_CODE ,
16- ONE ,
17- REGISTRATION_REQUESTED_CODE ,
18- ZERO ,
19- getExtendedStatus ,
20- getFinalRuling ,
21- getStatus ,
22- } from "./utils" ;
23- import { updateCounters } from "./Counters" ;
14+ import { ItemStatus , ONE , ZERO , getFinalRuling , getStatus } from "./utils" ;
2415import { createRequestFromEvent } from "./entities/Request" ;
2516import { createItemFromEvent } from "./entities/Item" ;
17+ import { ensureUser } from "./entities/User" ;
2618
2719// Items on a TCR can be in 1 of 4 states:
2820// - (0) Absent: The item is not registered on the TCR and there are no pending requests.
@@ -68,37 +60,13 @@ export function handleRequestSubmitted(event: RequestSubmitted): void {
6860 return ;
6961 }
7062
71- // `previousStatus` and `newStatus` are used for accounting.
72- // Note that if this is the very first request of an item,
73- // item.status and item.dispute are dirty because they were set by
74- // handleNewItem, executed before this handler and so `previousStatus`
75- // would be wrong. We use a condition to detect if its the very
76- // first request and if so, ignore its contents (see below in accounting).
77- let previousStatus = getExtendedStatus ( item . disputed , item . status ) ;
78- let newStatus = getExtendedStatus ( item . disputed , item . status ) ; // TODO
79-
8063 item . numberOfRequests = item . numberOfRequests . plus ( ONE ) ;
8164 item . status = getStatus ( itemInfo . value0 ) ;
82- item . latestRequester = event . transaction . from ;
65+ item . latestRequester = ensureUser ( event . transaction . from . toHexString ( ) ) . id ;
8366 item . latestRequestResolutionTime = ZERO ;
8467 item . latestRequestSubmissionTime = event . block . timestamp ;
8568
8669 createRequestFromEvent ( event ) ;
87-
88- // Accounting.
89- if ( itemInfo . value1 . equals ( ONE ) ) {
90- let registry = Registry . load ( event . address . toHexString ( ) ) ;
91- if ( ! registry ) {
92- log . error ( `Registry at address {} not found` , [ event . address . toHexString ( ) ] ) ;
93- return ;
94- }
95- // This is the first request for this item, which must be
96- // a registration request.
97- registry . numberOfRegistrationRequested = registry . numberOfRegistrationRequested . plus ( ONE ) ;
98- registry . save ( ) ;
99- } else {
100- updateCounters ( previousStatus , newStatus , event . address ) ;
101- }
10270 item . save ( ) ;
10371}
10472
@@ -107,7 +75,7 @@ export function handleStatusUpdated(event: ItemStatusChange): void {
10775 // All other status updates are handled elsewhere.
10876 let curate = Curate . bind ( event . address ) ;
10977 let itemInfo = curate . getItemInfo ( event . params . _itemID ) ;
110- if ( itemInfo . value0 == REGISTRATION_REQUESTED_CODE || itemInfo . value0 == CLEARING_REQUESTED_CODE ) {
78+ if ( itemInfo . value0 == ItemStatus . REGISTRATION_REQUESTED || itemInfo . value0 == ItemStatus . CLEARING_REQUESTED ) {
11179 // Request not yet resolved. No-op as changes are handled
11280 // elsewhere. (RequestSubmitted handler)
11381 return ;
@@ -120,16 +88,8 @@ export function handleStatusUpdated(event: ItemStatusChange): void {
12088 return ;
12189 }
12290
123- // We take the previous and new extended statuses for accounting purposes.
124- let previousStatus = getExtendedStatus ( item . disputed , item . status ) ;
12591 item . status = getStatus ( itemInfo . value0 ) ;
12692 item . disputed = false ;
127- let newStatus = getExtendedStatus ( item . disputed , item . status ) ;
128-
129- if ( previousStatus != newStatus ) {
130- // Accounting.
131- updateCounters ( previousStatus , newStatus , event . address ) ;
132- }
13393
13494 if ( event . params . _updatedDirectly ) {
13595 // Direct actions (e.g. addItemDirectly and removeItemDirectly)
@@ -204,11 +164,9 @@ export function handleRequestChallenged(event: DisputeRequest): void {
204164 return ;
205165 }
206166 let itemInfo = curate . getItemInfo ( itemID ) ;
207- let previousStatus = getExtendedStatus ( item . disputed , item . status ) ;
208167 item . disputed = true ;
209- item . latestChallenger = event . transaction . from ;
168+ item . latestChallenger = ensureUser ( event . transaction . from . toHexString ( ) ) . id ;
210169 item . status = getStatus ( itemInfo . value0 ) ;
211- let newStatus = getExtendedStatus ( item . disputed , item . status ) ;
212170
213171 let requestIndex = item . numberOfRequests . minus ( ONE ) ;
214172 let requestID = graphItemID + "-" + requestIndex . toString ( ) ;
@@ -219,12 +177,9 @@ export function handleRequestChallenged(event: DisputeRequest): void {
219177 }
220178
221179 request . disputed = true ;
222- request . challenger = event . transaction . from ;
180+ request . challenger = ensureUser ( event . transaction . from . toHexString ( ) ) . id ;
223181 request . disputeID = event . params . _arbitrableDisputeID ;
224182
225- // Accounting.
226- updateCounters ( previousStatus , newStatus , event . address ) ;
227-
228183 request . save ( ) ;
229184 item . save ( ) ;
230185}
0 commit comments