This repository was archived by the owner on Aug 18, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.graphql
More file actions
121 lines (105 loc) · 2.64 KB
/
schema.graphql
File metadata and controls
121 lines (105 loc) · 2.64 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
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
type GlobalStat @entity {
id: Bytes!
totalExecutedBundlesCount: BigInt!
totalValidatorsPaid: BigInt!
totalValidatorsCount: BigInt!
totalUniqueSearchers: BigInt!
# totalOpportunitiesCount: BigInt!
hourlyCollectionSnapshotGlobal: [HourlyCollectionSnapshotGlobal!]! @derivedFrom(field: "target")
dailyCollectionSnapshotGlobal: [DailyCollectionSnapshotGlobal!]! @derivedFrom(field: "target")
weeklyCollectionSnapshotGlobal: [WeeklyCollectionSnapshotGlobal!]! @derivedFrom(field: "target")
}
type HourlyCollectionSnapshotGlobal @entity {
"The hour"
id: ID!
target: GlobalStat!
timestamp: Int!
rangeVolume: BigInt!
validators: [Validator!]!
rangeTransactions: Int
topBid: BigInt!
}
type DailyCollectionSnapshotGlobal @entity {
"The day"
id: ID!
target: GlobalStat!
timestamp: Int!
rangeVolume: BigInt!
validators: [Validator!]!
rangeTransactions: Int
topBid: BigInt!
}
type WeeklyCollectionSnapshotGlobal @entity {
"The week"
id: ID!
target: GlobalStat!
timestamp: Int!
rangeVolume: BigInt!
validators: [Validator!]!
rangeTransactions: Int
topBid: BigInt!
}
type HourlyValidatorSnapshot @entity {
"The hour"
id: ID!
target: Validator!
timestamp: Int!
rangeVolume: BigInt!
rangeTransactions: Int
topBid: BigInt!
}
type DailyValidatorSnapshot @entity {
"The day"
id: ID!
target: Validator!
timestamp: Int!
rangeVolume: BigInt!
rangeTransactions: Int
topBid: BigInt!
}
type WeeklyValidatorSnapshot @entity {
"The week"
id: ID!
target: Validator!
timestamp: Int!
rangeVolume: BigInt!
rangeTransactions: Int
topBid: BigInt!
}
type Searcher @entity {
id: Bytes!
address: Bytes!
bundlesLanded: BigInt!
totalTipped: BigInt!
lastBundleLandedTimestamp: Int!
bundles: [RelayFlashBid!]! @derivedFrom(field: "sender")
}
enum ValidatorStatus {
INACTIVE
ACTIVE
}
type Validator @entity {
id: Bytes!
address: Bytes!
status: ValidatorStatus!
enabledAt: Int!
disabledAt: Int!
totalTips: BigInt!
totalExecutedBundlesCount: BigInt!
lastBundleReceivedTimestamp: Int!
hourlyValidatorSnapshot: [HourlyValidatorSnapshot!]! @derivedFrom(field: "target")
dailyValidatorSnapshot: [DailyValidatorSnapshot!]! @derivedFrom(field: "target")
weeklyValidatorSnapshot: [WeeklyValidatorSnapshot!]! @derivedFrom(field: "target")
bundles: [RelayFlashBid!]! @derivedFrom(field: "validator")
}
type RelayFlashBid @entity(immutable: true) {
id: Bytes!
sender: Searcher! # address
amount: BigInt! # uint256
oppTxHash: Bytes! # bytes32
validator: Validator!
searcherContractAddress: Bytes! # address
blockNumber: BigInt!
blockTimestamp: BigInt!
transactionHash: Bytes!
}