@@ -84,34 +84,52 @@ export function handleDisputeCreation(event: DisputeCreation): void {
8484}
8585
8686export function handleNewPeriod ( event : NewPeriod ) : void {
87+ const contract = KlerosCore . bind ( event . address ) ;
8788 const disputeID = event . params . _disputeID ;
8889 const dispute = Dispute . load ( disputeID . toString ( ) ) ;
90+ const disputeStorage = contract . disputes ( disputeID ) ;
91+ const courtID = disputeStorage . value0 . toString ( ) ;
92+ const court = Court . load ( courtID ) ;
8993 if ( ! dispute ) return ;
94+ if ( ! court ) return ;
9095 const newPeriod = getPeriodName ( event . params . _period ) ;
9196 if ( dispute . period === "vote" ) {
9297 updateCasesVoting ( BigInt . fromI32 ( - 1 ) , event . block . timestamp ) ;
98+ } else if ( newPeriod === "evidence" ) {
99+ court . numberAppealingDisputes = court . numberAppealingDisputes . minus ( ONE ) ;
93100 } else if ( newPeriod === "vote" ) {
94101 updateCasesVoting ( ONE , event . block . timestamp ) ;
102+ } else if ( newPeriod === "appeal" ) {
103+ court . numberAppealingDisputes = court . numberAppealingDisputes . plus ( ONE ) ;
95104 } else if ( newPeriod === "execution" ) {
96105 const contract = KlerosCore . bind ( event . address ) ;
97106 const currentRulingInfo = contract . currentRuling ( disputeID ) ;
98107 dispute . currentRuling = currentRulingInfo . getRuling ( ) ;
99108 dispute . overridden = currentRulingInfo . getOverridden ( ) ;
100109 dispute . tied = currentRulingInfo . getTied ( ) ;
101110 dispute . save ( ) ;
111+ court . numberAppealingDisputes = court . numberAppealingDisputes . minus ( ONE ) ;
102112 }
103113 dispute . period = newPeriod ;
104114 dispute . lastPeriodChange = event . block . timestamp ;
105115 dispute . save ( ) ;
116+ court . save ( ) ;
106117}
107118
108119export function handleRuling ( event : Ruling ) : void {
109- const disputeID = event . params . _disputeID . toString ( ) ;
110- const dispute = Dispute . load ( disputeID ) ;
120+ const contract = KlerosCore . bind ( event . address ) ;
121+ const disputeID = event . params . _disputeID ;
122+ const dispute = Dispute . load ( disputeID . toString ( ) ) ;
123+ const disputeStorage = contract . disputes ( disputeID ) ;
124+ const courtID = disputeStorage . value0 . toString ( ) ;
125+ const court = Court . load ( courtID ) ;
111126 if ( ! dispute ) return ;
112127 dispute . ruled = true ;
113128 dispute . save ( ) ;
114129 updateCasesRuled ( ONE , event . block . timestamp ) ;
130+ if ( ! court ) return ;
131+ court . numberClosedDisputes = court . numberClosedDisputes . plus ( ONE ) ;
132+ court . save ( ) ;
115133}
116134
117135export function handleAppealDecision ( event : AppealDecision ) : void {
0 commit comments