|
1 |
| -import { SortitionModule, StakeLocked, StakeSet } from "../generated/SortitionModule/SortitionModule"; |
| 1 | +import { SortitionModule, StakeLocked, StakeSet as StakeSetEvent } from "../generated/SortitionModule/SortitionModule"; |
| 2 | +import { StakeSet as StakeSetEntity, User } from "../generated/schema"; |
2 | 3 |
|
3 | 4 | import { updateJurorDelayedStake, updateJurorStake } from "./entities/JurorTokensPerCourt";
|
4 | 5 | import { ensureUser } from "./entities/User";
|
5 | 6 | import { ZERO } from "./utils";
|
6 | 7 |
|
7 |
| -export function handleStakeSet(event: StakeSet): void { |
| 8 | +export function handleStakeSet(event: StakeSetEvent): void { |
8 | 9 | const jurorAddress = event.params._address.toHexString();
|
9 | 10 | ensureUser(jurorAddress);
|
10 | 11 | const courtID = event.params._courtID.toString();
|
11 | 12 |
|
12 | 13 | updateJurorStake(jurorAddress, courtID.toString(), SortitionModule.bind(event.address), event.block.timestamp);
|
13 | 14 | //stake is updated instantly so no delayed amount, set delay amount to zero
|
14 | 15 | updateJurorDelayedStake(jurorAddress, courtID, ZERO);
|
| 16 | + |
| 17 | + const juror = User.load(jurorAddress); |
| 18 | + if (!juror) return; |
| 19 | + const stakeSet = new StakeSetEntity(event.transaction.hash.toHex() + "-" + event.logIndex.toString()); |
| 20 | + stakeSet.address = jurorAddress; |
| 21 | + stakeSet.courtID = event.params._courtID; |
| 22 | + stakeSet.stake = event.params._amount; |
| 23 | + stakeSet.newTotalStake = juror.totalStake; |
| 24 | + stakeSet.blocknumber = event.block.number; |
| 25 | + stakeSet.timestamp = event.block.timestamp; |
| 26 | + stakeSet.logIndex = event.logIndex; |
| 27 | + stakeSet.save(); |
15 | 28 | }
|
| 29 | + |
16 | 30 | export function handleStakeLocked(event: StakeLocked): void {
|
17 | 31 | // NOP
|
18 | 32 | }
|
0 commit comments