1
- import { ByteArray } from "@graphprotocol/graph-ts" ;
1
+ import { Address , ByteArray } from "@graphprotocol/graph-ts" ;
2
2
3
- import { Governor , SetMetaEvidenceCall } from "../generated/Governor/Governor" ;
3
+ import {
4
+ ChangeArbitratorCall ,
5
+ ChangeExecutionTimeoutCall ,
6
+ ChangeLoserMultiplierCall ,
7
+ ChangeMetaEvidenceCall ,
8
+ ChangeSharedMultiplierCall ,
9
+ ChangeSubmissionDepositCall ,
10
+ ChangeSubmissionTimeoutCall ,
11
+ ChangeWinnerMultiplierCall ,
12
+ ChangeWithdrawTimeoutCall ,
13
+ Governor ,
14
+ SetMetaEvidenceCall ,
15
+ } from "../generated/Governor/Governor" ;
4
16
import { Contract , MetaEvidence } from "../generated/schema" ;
5
17
6
18
function getStatus ( status : number ) : string {
@@ -17,11 +29,15 @@ function concatByteArrays(a: ByteArray, b: ByteArray): ByteArray {
17
29
return out as ByteArray ;
18
30
}
19
31
20
- export function setMetaEvidence ( call : SetMetaEvidenceCall ) : void {
21
- let governor = Governor . bind ( call . to ) ;
32
+ function initializeContract ( address : Address , deployer : Address ) : Contract {
33
+ let contract = Contract . load ( "0" ) ;
34
+ if ( contract != null ) return contract as Contract ;
35
+ let governor = Governor . bind ( address ) ;
22
36
23
- let contract = new Contract ( "0" ) ;
24
- contract . deployer = call . from ;
37
+ contract = new Contract ( "0" ) ;
38
+ contract . arbitrator = governor . arbitrator ( ) ;
39
+ contract . arbitratorExtraData = governor . arbitratorExtraData ( ) ;
40
+ contract . deployer = contract . deployer || deployer ;
25
41
contract . reservedETH = governor . reservedETH ( ) ;
26
42
contract . submissionBaseDeposit = governor . submissionBaseDeposit ( ) ;
27
43
contract . submissionTimeout = governor . submissionTimeout ( ) ;
@@ -32,6 +48,80 @@ export function setMetaEvidence(call: SetMetaEvidenceCall): void {
32
48
contract . loserMultiplier = governor . loserMultiplier ( ) ;
33
49
contract . lastApprovalTime = governor . lastApprovalTime ( ) ;
34
50
contract . metaEvidenceUpdates = governor . metaEvidenceUpdates ( ) ;
51
+ contract . metaEvidence = contract . metaEvidenceUpdates . toHexString ( ) ;
52
+ contract . save ( ) ;
53
+
54
+ return contract as Contract ;
55
+ }
56
+
57
+ export function setMetaEvidence ( call : SetMetaEvidenceCall ) : void {
58
+ let contract = initializeContract ( call . to , call . from ) ;
59
+
60
+ let metaEvidence = new MetaEvidence (
61
+ contract . metaEvidenceUpdates . toHexString ( )
62
+ ) ;
63
+ metaEvidence . URI = call . inputs . _metaEvidence ;
64
+ metaEvidence . save ( ) ;
65
+
66
+ contract . metaEvidence = metaEvidence . id ;
67
+ contract . save ( ) ;
68
+ }
69
+
70
+ export function changeSubmissionDeposit (
71
+ call : ChangeSubmissionDepositCall
72
+ ) : void {
73
+ let contract = initializeContract ( call . to , call . from ) ;
74
+ contract . submissionBaseDeposit = call . inputs . _submissionBaseDeposit ;
75
+ contract . save ( ) ;
76
+ }
77
+
78
+ export function changeSubmissionTimeout (
79
+ call : ChangeSubmissionTimeoutCall
80
+ ) : void {
81
+ let contract = initializeContract ( call . to , call . from ) ;
82
+ contract . submissionTimeout = call . inputs . _submissionTimeout ;
83
+ contract . save ( ) ;
84
+ }
85
+
86
+ export function changeExecutionTimeout ( call : ChangeExecutionTimeoutCall ) : void {
87
+ let contract = initializeContract ( call . to , call . from ) ;
88
+ contract . executionTimeout = call . inputs . _executionTimeout ;
89
+ contract . save ( ) ;
90
+ }
91
+
92
+ export function changeWithdrawTimeout ( call : ChangeWithdrawTimeoutCall ) : void {
93
+ let contract = initializeContract ( call . to , call . from ) ;
94
+ contract . withdrawTimeout = call . inputs . _withdrawTimeout ;
95
+ contract . save ( ) ;
96
+ }
97
+
98
+ export function changeSharedMultiplier ( call : ChangeSharedMultiplierCall ) : void {
99
+ let contract = initializeContract ( call . to , call . from ) ;
100
+ contract . sharedMultiplier = call . inputs . _sharedMultiplier ;
101
+ contract . save ( ) ;
102
+ }
103
+
104
+ export function changeWinnerMultiplier ( call : ChangeWinnerMultiplierCall ) : void {
105
+ let contract = initializeContract ( call . to , call . from ) ;
106
+ contract . winnerMultiplier = call . inputs . _winnerMultiplier ;
107
+ contract . save ( ) ;
108
+ }
109
+
110
+ export function changeLoserMultiplier ( call : ChangeLoserMultiplierCall ) : void {
111
+ let contract = initializeContract ( call . to , call . from ) ;
112
+ contract . loserMultiplier = call . inputs . _loserMultiplier ;
113
+ contract . save ( ) ;
114
+ }
115
+
116
+ export function changeArbitrator ( call : ChangeArbitratorCall ) : void {
117
+ let contract = initializeContract ( call . to , call . from ) ;
118
+ contract . arbitrator = call . inputs . _arbitrator ;
119
+ contract . arbitratorExtraData = call . inputs . _arbitratorExtraData ;
120
+ contract . save ( ) ;
121
+ }
122
+
123
+ export function changeMetaEvidence ( call : ChangeMetaEvidenceCall ) : void {
124
+ let contract = initializeContract ( call . to , call . from ) ;
35
125
36
126
let metaEvidence = new MetaEvidence (
37
127
contract . metaEvidenceUpdates . toHexString ( )
0 commit comments