4
4
StakeDelayedAlreadyTransferredWithdrawn ,
5
5
StakeDelayedNotTransferred ,
6
6
StakeLocked ,
7
- StakeSet ,
7
+ StakeSet as StakeSetEvent ,
8
8
} from "../generated/SortitionModule/SortitionModule" ;
9
+ import { Court , StakeSet as StakeSetEntity } from "../generated/schema" ;
9
10
10
11
import { updateJurorDelayedStake , updateJurorStake } from "./entities/JurorTokensPerCourt" ;
11
12
import { ensureUser } from "./entities/User" ;
@@ -23,13 +24,26 @@ export function handleStakeDelayedNotTransferred(event: StakeDelayedNotTransferr
23
24
updateJurorDelayedStake ( event . params . _address . toHexString ( ) , event . params . _courtID . toString ( ) , event . params . _amount ) ;
24
25
}
25
26
26
- export function handleStakeSet ( event : StakeSet ) : void {
27
+ export function handleStakeSet ( event : StakeSetEvent ) : void {
27
28
const jurorAddress = event . params . _address . toHexString ( ) ;
28
29
ensureUser ( jurorAddress ) ;
29
30
const courtID = event . params . _courtID . toString ( ) ;
30
31
31
32
updateJurorStake ( jurorAddress , courtID . toString ( ) , SortitionModule . bind ( event . address ) , event . block . timestamp ) ;
32
33
//stake is updated instantly so no delayed amount, set delay amount to zero
33
34
updateJurorDelayedStake ( jurorAddress , courtID , ZERO ) ;
35
+
36
+ const generalCourt = Court . load ( "1" ) ;
37
+ if ( ! generalCourt ) return ;
38
+ const stakeSet = new StakeSetEntity ( event . transaction . hash . toHex ( ) + "-" + event . logIndex . toString ( ) ) ;
39
+ stakeSet . address = event . params . _address ;
40
+ stakeSet . courtID = event . params . _courtID ;
41
+ stakeSet . stake = event . params . _amount ;
42
+ stakeSet . newTotalStake = generalCourt . effectiveStake ;
43
+ stakeSet . blocknumber = event . block . number ;
44
+ stakeSet . timestamp = event . block . timestamp ;
45
+ stakeSet . logIndex = event . logIndex ;
46
+ stakeSet . save ( ) ;
34
47
}
48
+
35
49
export function handleStakeLocked ( event : StakeLocked ) : void { }
0 commit comments