This repository was archived by the owner on Mar 15, 2022. It is now read-only.
forked from 0xSplits/splits-subgraph
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.template.graphql
More file actions
77 lines (67 loc) · 2.02 KB
/
schema.template.graphql
File metadata and controls
77 lines (67 loc) · 2.02 KB
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
interface Account {
id: ID! # ethereum address
internalBalances: [TokenInternalBalance!]! @derivedFrom(field: "account")
withdrawals: [TokenWithdrawal!]! @derivedFrom(field: "account")
upstream: [Recipient!] @derivedFrom(field: "account")
}
type Token @entity {
id: ID! # ethereum address
internalBalances: [TokenInternalBalance!]! @derivedFrom(field: "token")
withdrawals: [TokenWithdrawal!]! @derivedFrom(field: "token")
}
interface TokenBalance {
id: ID! # ${prefix}-${accountId}-${tokenId}
amount: BigInt!
token: Token!
account: Account!
}
type TokenInternalBalance implements TokenBalance @entity {
id: ID! # ib-${accountId}-${tokenId}
amount: BigInt!
token: Token!
account: Account!
}
type TokenWithdrawal implements TokenBalance @entity {
id: ID! # w-${accountId}-${tokenId}
amount: BigInt!
token: Token!
account: Account!
}
type User implements Account @entity {
id: ID! # ethereum address
internalBalances: [TokenInternalBalance!]! @derivedFrom(field: "account")
withdrawals: [TokenWithdrawal!]! @derivedFrom(field: "account")
upstream: [Recipient!] @derivedFrom(field: "account")
}
type Split implements Account @entity {
id: ID! # ethereum address
internalBalances: [TokenInternalBalance!]! @derivedFrom(field: "account")
withdrawals: [TokenWithdrawal!]! @derivedFrom(field: "account")
upstream: [Recipient!] @derivedFrom(field: "account")
controller: Bytes!
newPotentialController: Bytes!
distributorFee: BigInt!
# recipients: [Recipient!]! @derivedFrom(field: "split")
recipients: [Recipient!]!
}
type Recipient @entity {
id: ID! # ${splitId}-${accountId}
split: Split!
account: Account!
ownership: BigInt!
}
{{#ethereum}}
type DistributionEvent @entity {
id: ID! # ${txHash}-${logIdx}
transaction: Transaction!
logIndex: BigInt!
split: Split!
token: Token!
amount: BigInt!
}
type Transaction @entity {
id: ID! #txHash
# distributionEvents: [DistributionEvent!]! @derivedFrom(field: "transaction")
distributionEvents: [DistributionEvent!]
}
{{/ethereum}}