Skip to content

Commit ba85c09

Browse files
authored
Merge pull request #1936 from kleros/chore(subgraph)/amount-all-courts-calculations
chore: revert stakeset handling in this subgraph and add new event parameter
2 parents c399c03 + 3397ab5 commit ba85c09

File tree

9 files changed

+21
-48
lines changed

9 files changed

+21
-48
lines changed

Diff for: subgraph/core-neo/subgraph.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ dataSources:
149149
language: wasm/assemblyscript
150150
entities:
151151
- JurorTokensPerCourt
152-
- StakeSet
153152
abis:
154153
- name: SortitionModule
155154
file: ../../contracts/deployments/arbitrum/SortitionModuleNeo.json
@@ -162,6 +161,6 @@ dataSources:
162161
handler: handleStakeDelayedNotTransferred
163162
- event: StakeLocked(indexed address,uint256,bool)
164163
handler: handleStakeLocked
165-
- event: StakeSet(indexed address,uint256,uint256)
164+
- event: StakeSet(indexed address,uint256,uint256,uint256)
166165
handler: handleStakeSet
167166
file: ./src/SortitionModule.ts

Diff for: subgraph/core-university/src/SortitionModule.ts

+3-14
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,17 @@
1-
import { SortitionModule, StakeLocked, StakeSet as StakeSetEvent } from "../generated/SortitionModule/SortitionModule";
2-
import { StakeSet as StakeSetEntity } from "../generated/schema";
1+
import { SortitionModule, StakeLocked, StakeSet } from "../generated/SortitionModule/SortitionModule";
32

43
import { updateJurorDelayedStake, updateJurorStake } from "./entities/JurorTokensPerCourt";
54
import { ensureUser } from "./entities/User";
65
import { ZERO } from "./utils";
76

8-
export function handleStakeSet(event: StakeSetEvent): void {
7+
export function handleStakeSet(event: StakeSet): void {
98
const jurorAddress = event.params._address.toHexString();
9+
ensureUser(jurorAddress);
1010
const courtID = event.params._courtID.toString();
1111

1212
updateJurorStake(jurorAddress, courtID.toString(), SortitionModule.bind(event.address), event.block.timestamp);
1313
//stake is updated instantly so no delayed amount, set delay amount to zero
1414
updateJurorDelayedStake(jurorAddress, courtID, ZERO);
15-
16-
const stakeSet = new StakeSetEntity(event.transaction.hash.toHex() + "-" + event.logIndex.toString());
17-
const juror = ensureUser(jurorAddress);
18-
stakeSet.juror = juror.id;
19-
stakeSet.courtID = event.params._courtID;
20-
stakeSet.stake = event.params._amount;
21-
stakeSet.newTotalStake = juror.totalStake;
22-
stakeSet.blocknumber = event.block.number;
23-
stakeSet.timestamp = event.block.timestamp;
24-
stakeSet.logIndex = event.logIndex;
25-
stakeSet.save();
2615
}
2716

2817
export function handleStakeLocked(event: StakeLocked): void {

Diff for: subgraph/core-university/subgraph.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -149,13 +149,12 @@ dataSources:
149149
language: wasm/assemblyscript
150150
entities:
151151
- JurorTokensPerCourt
152-
- StakeSet
153152
abis:
154153
- name: SortitionModule
155154
file: ../../contracts/deployments/arbitrumSepoliaDevnet/SortitionModuleUniversity.json
156155
eventHandlers:
157156
- event: StakeLocked(indexed address,uint256,bool)
158157
handler: handleStakeLocked
159-
- event: StakeSet(indexed address,uint256,uint256)
158+
- event: StakeSet(indexed address,uint256,uint256,uint256)
160159
handler: handleStakeSet
161160
file: ./src/SortitionModule.ts

Diff for: subgraph/core/schema.graphql

-11
Original file line numberDiff line numberDiff line change
@@ -354,17 +354,6 @@ type ClassicContribution implements Contribution @entity {
354354
rewardWithdrawn: Boolean!
355355
}
356356

357-
type StakeSet @entity(immutable: true) {
358-
id: ID! # event.transaction.hash.toHex() + - + event.logIndex.toString()
359-
juror: User!
360-
courtID: BigInt!
361-
stake: BigInt!
362-
newTotalStake: BigInt!
363-
blocknumber: BigInt!
364-
timestamp: BigInt!
365-
logIndex: BigInt!
366-
}
367-
368357
type _Schema_
369358
@fulltext(
370359
name: "evidenceSearch"

Diff for: subgraph/core/src/SortitionModule.ts

+3-14
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ import {
44
StakeDelayedAlreadyTransferredWithdrawn,
55
StakeDelayedNotTransferred,
66
StakeLocked,
7-
StakeSet as StakeSetEvent,
7+
StakeSet,
88
} from "../generated/SortitionModule/SortitionModule";
9-
import { StakeSet as StakeSetEntity } from "../generated/schema";
109

1110
import { updateJurorDelayedStake, updateJurorStake } from "./entities/JurorTokensPerCourt";
1211
import { ensureUser } from "./entities/User";
@@ -24,24 +23,14 @@ export function handleStakeDelayedNotTransferred(event: StakeDelayedNotTransferr
2423
updateJurorDelayedStake(event.params._address.toHexString(), event.params._courtID.toString(), event.params._amount);
2524
}
2625

27-
export function handleStakeSet(event: StakeSetEvent): void {
26+
export function handleStakeSet(event: StakeSet): void {
2827
const jurorAddress = event.params._address.toHexString();
28+
ensureUser(jurorAddress);
2929
const courtID = event.params._courtID.toString();
3030

3131
updateJurorStake(jurorAddress, courtID.toString(), SortitionModule.bind(event.address), event.block.timestamp);
3232
//stake is updated instantly so no delayed amount, set delay amount to zero
3333
updateJurorDelayedStake(jurorAddress, courtID, ZERO);
34-
35-
const stakeSet = new StakeSetEntity(event.transaction.hash.toHex() + "-" + event.logIndex.toString());
36-
const juror = ensureUser(jurorAddress);
37-
stakeSet.juror = juror.id;
38-
stakeSet.courtID = event.params._courtID;
39-
stakeSet.stake = event.params._amount;
40-
stakeSet.newTotalStake = juror.totalStake;
41-
stakeSet.blocknumber = event.block.number;
42-
stakeSet.timestamp = event.block.timestamp;
43-
stakeSet.logIndex = event.logIndex;
44-
stakeSet.save();
4534
}
4635

4736
export function handleStakeLocked(event: StakeLocked): void {}

Diff for: subgraph/core/subgraph.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ dataSources:
149149
language: wasm/assemblyscript
150150
entities:
151151
- JurorTokensPerCourt
152-
- StakeSet
153152
abis:
154153
- name: SortitionModule
155154
file: ../../contracts/deployments/arbitrumSepoliaDevnet/SortitionModule.json
@@ -162,6 +161,6 @@ dataSources:
162161
handler: handleStakeDelayedNotTransferred
163162
- event: StakeLocked(indexed address,uint256,bool)
164163
handler: handleStakeLocked
165-
- event: StakeSet(indexed address,uint256,uint256)
164+
- event: StakeSet(indexed address,uint256,uint256,uint256)
166165
handler: handleStakeSet
167166
file: ./src/SortitionModule.ts

Diff for: subgraph/core/tests/sortition-module-utils.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,22 @@ export function createStakeLockedEvent(_address: Address, _relativeAmount: BigIn
8888
return stakeLockedEvent;
8989
}
9090

91-
export function createStakeSetEvent(_address: Address, _courtID: BigInt, _amount: BigInt): StakeSet {
91+
export function createStakeSetEvent(
92+
_address: Address,
93+
_courtID: BigInt,
94+
_amount: BigInt,
95+
_amountAllCourts: BigInt
96+
): StakeSet {
9297
let stakeSetEvent = newMockEvent();
9398

9499
stakeSetEvent.parameters = new Array();
95100

96101
stakeSetEvent.parameters.push(new ethereum.EventParam("_address", ethereum.Value.fromAddress(_address)));
97102
stakeSetEvent.parameters.push(new ethereum.EventParam("_courtID", ethereum.Value.fromUnsignedBigInt(_courtID)));
98103
stakeSetEvent.parameters.push(new ethereum.EventParam("_amount", ethereum.Value.fromUnsignedBigInt(_amount)));
104+
stakeSetEvent.parameters.push(
105+
new ethereum.EventParam("_amountAllCourts", ethereum.Value.fromUnsignedBigInt(_amountAllCourts))
106+
);
99107

100108
return stakeSetEvent;
101109
}

Diff for: subgraph/core/tests/sortition-module.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ describe("Describe event", () => {
1010
beforeAll(() => {
1111
let courtId = BigInt.fromI32(1);
1212
let amount = BigInt.fromI32(1000);
13+
let amountAllCourts = BigInt.fromI32(1000);
1314
let jurorAddress = Address.fromString("0x922911F4f80a569a4425fa083456239838F7F003");
14-
let newStakeSetEvent = createStakeSetEvent(jurorAddress, courtId, amount);
15+
let newStakeSetEvent = createStakeSetEvent(jurorAddress, courtId, amount, amountAllCourts);
1516
handleStakeSet(newStakeSetEvent);
1617
});
1718

Diff for: subgraph/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@kleros/kleros-v2-subgraph",
3-
"version": "0.12.0",
3+
"version": "0.13.0",
44
"drtVersion": "0.11.0",
55
"license": "MIT",
66
"scripts": {

0 commit comments

Comments
 (0)