This repository has been archived by the owner on Jun 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
schema.graphql
154 lines (136 loc) · 2.28 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
enum RelayChain {
kusama
polkadot
}
type Chain @entity {
id: ID!
token: Token!
paraId: Int
relayChain: RelayChain
states: [ChainState!] @derivedFrom(field: "chain")
}
type Token {
symbol: String
decimals: Int
}
type ChainState @entity {
id: ID!
chain: Chain! @index
tokenBalance: BigInt!
tokenHolders: Int!
councilMembers: Int!
democracyProposals: Int!
councilProposals: Int!
timestamp: DateTime! @index
}
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: Int
proposer: String
deposit: BigInt
threshold: Threshold
proposedCall: ProposedCall
curator: String
payee: String
reward: BigInt
voting: [Vote!] @derivedFrom(field: "proposal")
status: ProposalStatus!
statusHistory: [StatusHistoryItem!]!
createdAtBlock: Int!
createdAt: DateTime!
endedAtBlock: Int
endedAt: DateTime
updatedAtBlock: Int
updatedAt: DateTime
group: ProposalGroup
}
type StatusHistoryItem {
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
type Vote @entity {
id: ID!
voter: String!
proposal: Proposal!
createdAt: Int!
timestamp: DateTime!
decision: VoteDecision
balance: VoteBalance
lockPeriod: Int
}
type ProposalGroup @entity {
id: ID!
preimageHash: String
treasuryIndex: Int
bountyIndex: Int
tipHash: String
proposals: [Proposal] @derivedFrom(field: "group")
}