Skip to content

Commit 2fe4f41

Browse files
alcercujaybuidl
authored andcommitted
fix(subgraph): arbitrable code was not implemented
1 parent 79b1d0b commit 2fe4f41

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

subgraph/schema.graphql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ type User @entity {
6767
evidences: [Evidence!]! @derivedFrom(field: "sender")
6868
}
6969

70-
type Arbitrated @entity {
70+
type Arbitrable @entity {
7171
id: ID! # address
7272
disputes: [Dispute!]! @derivedFrom(field: "arbitrated")
7373
totalDisputes: BigInt!
@@ -114,7 +114,7 @@ type Court @entity {
114114
type Dispute @entity {
115115
id: ID!
116116
court: Court!
117-
arbitrated: Arbitrated!
117+
arbitrated: Arbitrable!
118118
period: Period!
119119
ruled: Boolean!
120120
lastPeriodChange: BigInt!

subgraph/src/KlerosCore.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
} from "./entities/JurorTokensPerCourt";
4141
import { createDrawFromEvent } from "./entities/Draw";
4242
import { createTokenAndEthShiftFromEvent } from "./entities/TokenAndEthShift";
43+
import { updateArbitrableCases } from "./entities/Arbitrable";
4344

4445
function getPeriodName(index: i32): string {
4546
const periodArray = ["evidence", "commit", "vote", "appeal", "execution"];
@@ -91,6 +92,8 @@ export function handleDisputeCreation(event: DisputeCreation): void {
9192
createDisputeFromEvent(event);
9293
const roundInfo = contract.getRoundInfo(disputeID, ZERO);
9394
createRoundFromRoundInfo(disputeID, ZERO, court.feeForJuror, roundInfo);
95+
const arbitrable = event.params._arbitrable.toHexString();
96+
updateArbitrableCases(arbitrable, ONE);
9497
updateCases(ONE, event.block.timestamp);
9598
}
9699

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { BigInt } from "@graphprotocol/graph-ts";
2+
import { Arbitrable } from "../../generated/schema";
3+
import { ZERO } from "../utils";
4+
5+
export function ensureArbitrable(id: string): Arbitrable {
6+
let arbitrable = Arbitrable.load(id);
7+
8+
if (arbitrable) return arbitrable;
9+
10+
arbitrable = new Arbitrable(id);
11+
arbitrable.totalDisputes = ZERO;
12+
13+
return arbitrable;
14+
}
15+
16+
export function updateArbitrableCases(id: string, delta: BigInt): void {
17+
const arbitrable = ensureArbitrable(id);
18+
arbitrable.totalDisputes = arbitrable.totalDisputes.plus(delta);
19+
arbitrable.save();
20+
}

0 commit comments

Comments
 (0)