-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqueries.js
121 lines (109 loc) · 2.42 KB
/
queries.js
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
const { gql } = require("graphql-request");
const { flexClient } = require("./subgraphClients");
async function getAllQueryIds() {
const queryIdsAdded = new Set();
let latestQueryId = "";
do {
const queryIdsQuery = queryIdsAdded.size > 0 ? Array.from(queryIdsAdded).map((id) => `"${id}"`).join(',') : '""';
const query = gql`
query newQueryIds {
newReportEntities(
first: 1
where: {
_queryId_not_in: [
${queryIdsQuery}
]
}
) {
_queryId
}
}
`;
const { newReportEntities: reports } = await flexClient.request(query);
const queryId = reports[0]?._queryId;
if (queryId) {
queryIdsAdded.add(queryId);
}
latestQueryId = queryId;
} while(latestQueryId !== undefined);
return queryIdsAdded;
}
function getReportsQuery(_time_gte, _queryId, _reporter) {
return gql`
query {
newReportEntities(orderBy: _time, orderDirection: asc, where: {
_time_gte: ${_time_gte},
_queryId: "${_queryId}",
_reporter: "${_reporter}"
}) {
id
_nonce
_queryData
_queryId
_time
_value
_reporter
txnHash
}
}
`;
}
function getTipsAddedQuery(_startTime_gte, _queryId, _tipper) {
return gql`
query {
tipAddedEntities(orderBy: _startTime, orderDirection: asc, where: {
_startTime_gte: ${_startTime_gte},
_queryId: "${_queryId}"
}) {
id
_queryId
_amount
_queryData
_tipper
_startTime
txnHash
__typename
}
}
`;
}
function getNewDataFeedQuery(_feedId) {
return gql`
query {
newDataFeedEntities(
where: {
_feedId: "${_feedId}"
}
) {
id
_queryId
_queryData
_feedCreator
__typename
_feedId
}
}
`;
}
function getDataFeedQuery(id) {
return gql`
query {
dataFeedEntities(where: { id: "${id}" }) {
id
_reward
_startTime
_interval
_window
_priceThreshold
_queryData
txnHash
__typename
}
}
`;
}
exports.getReportsQuery = getReportsQuery;
exports.getTipsAddedQuery = getTipsAddedQuery;
exports.getNewDataFeedQuery = getNewDataFeedQuery;
exports.getDataFeedQuery = getDataFeedQuery;
exports.getAllQueryIds = getAllQueryIds;