forked from belopash/subsquid-deepdao
-
Notifications
You must be signed in to change notification settings - Fork 3
/
schema.graphql
134 lines (119 loc) · 2.06 KB
/
schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
enum ProposalType {
Preimage
DemocracyProposal
TechCommitteeProposal
TreasuryProposal
Referendum
CouncilMotion
Bounty
Tip
}
enum ProposalStatus {
Noted
Proposed
Tabled
Started
Passed
NotPassed
Cancelled
Executed
Used
Invalid
Missing
Reaped
Approved
Disapproved
Closed
Awarded
Rejected
Retracted
Slashed
Active
Extended
Claimed
}
type MotionThreshold {
value: Int!
}
enum ReferendumThresholdType {
SuperMajorityApprove
SuperMajorityAgainst
SimpleMajority
}
type ReferendumThreshold {
type: ReferendumThresholdType!
}
union Threshold = MotionThreshold | ReferendumThreshold
type Proposal @entity {
id: ID!
type: ProposalType! @index
hash: String @index
index: Int @index
proposer: String
deposit: BigInt
threshold: Threshold
proposedCall: ProposedCall
curator: String
payee: String
reward: BigInt
voting: [Vote!] @derivedFrom(field: "proposal")
status: ProposalStatus!
statusHistory: [StatusHistory!] @derivedFrom(field: "proposal")
createdAtBlock: Int! @index
createdAt: DateTime! @index
endedAtBlock: Int
endedAt: DateTime
updatedAtBlock: Int
updatedAt: DateTime
group: ProposalGroup
}
type StatusHistory @entity {
id: ID!
proposal: Proposal!
status: ProposalStatus!
block: Int!
timestamp: DateTime!
}
type ProposedCall {
section: String!
method: String!
args: JSON
description: String!
}
enum VoteDecision {
yes
no
abstain
}
type StandardVoteBalance {
value: BigInt
}
type SplitVoteBalance {
aye: BigInt
nay: BigInt
}
union VoteBalance = StandardVoteBalance | SplitVoteBalance
enum VoteType {
Referendum
Motion
}
type Vote @entity {
id: ID!
voter: String
proposalId: ID!
proposal: Proposal!
blockNumber: Int! @index
timestamp: DateTime! @index
decision: VoteDecision
balance: VoteBalance
lockPeriod: Int
type: VoteType
}
type ProposalGroup @entity {
id: ID!
preimageHash: String @index
treasuryIndex: Int @index
bountyIndex: Int @index
tipHash: String @index
proposals: [Proposal] @derivedFrom(field: "group")
}