@@ -5,168 +5,6 @@ const { getModel } = require('../model');
55
66const logger = signale . scope ( 'compute relayer metrics' ) ;
77
8- const computeTraderMetrics = async ( dateFrom , dateTo ) => {
9- const results = await getModel ( 'Fill' ) . aggregate ( [
10- {
11- $match : {
12- date : {
13- $gte : dateFrom ,
14- $lte : dateTo ,
15- } ,
16- } ,
17- } ,
18- {
19- $project : {
20- dateParts : {
21- $dateToParts : {
22- date : '$date' ,
23- } ,
24- } ,
25- maker : 1 ,
26- taker : 1 ,
27- relayerId : 1 ,
28- } ,
29- } ,
30- {
31- $project : {
32- dateToMinute : {
33- $dateFromParts : {
34- year : '$dateParts.year' ,
35- month : '$dateParts.month' ,
36- day : '$dateParts.day' ,
37- hour : '$dateParts.hour' ,
38- minute : '$dateParts.minute' ,
39- } ,
40- } ,
41- dateToHour : {
42- $dateFromParts : {
43- year : '$dateParts.year' ,
44- month : '$dateParts.month' ,
45- day : '$dateParts.day' ,
46- hour : '$dateParts.hour' ,
47- } ,
48- } ,
49- dateToDay : {
50- $dateFromParts : {
51- year : '$dateParts.year' ,
52- month : '$dateParts.month' ,
53- day : '$dateParts.day' ,
54- } ,
55- } ,
56- maker : 1 ,
57- taker : 1 ,
58- relayerId : 1 ,
59- } ,
60- } ,
61- {
62- $facet : {
63- activeMakers : [
64- {
65- $group : {
66- _id : {
67- maker : '$maker' ,
68- relayerId : '$relayerId' ,
69- } ,
70- } ,
71- } ,
72- {
73- $group : {
74- _id : '$_id.relayerId' ,
75- count : {
76- $sum : 1 ,
77- } ,
78- } ,
79- } ,
80- {
81- $project : {
82- _id : 0 ,
83- relayerId : '$_id' ,
84- count : 1 ,
85- } ,
86- } ,
87- ] ,
88- activeTakers : [
89- {
90- $group : {
91- _id : {
92- maker : '$taker' ,
93- relayerId : '$relayerId' ,
94- } ,
95- } ,
96- } ,
97- {
98- $group : {
99- _id : '$_id.relayerId' ,
100- count : {
101- $sum : 1 ,
102- } ,
103- } ,
104- } ,
105- {
106- $project : {
107- _id : 0 ,
108- relayerId : '$_id' ,
109- count : 1 ,
110- } ,
111- } ,
112- ] ,
113- activeTraders : [
114- {
115- $addFields : {
116- addresses : [ '$maker' , '$taker' ] ,
117- } ,
118- } ,
119- {
120- $unwind : {
121- path : '$addresses' ,
122- } ,
123- } ,
124- {
125- $group : {
126- _id : {
127- maker : '$addresses' ,
128- relayerId : '$relayerId' ,
129- } ,
130- } ,
131- } ,
132- {
133- $group : {
134- _id : '$_id.relayerId' ,
135- count : {
136- $sum : 1 ,
137- } ,
138- } ,
139- } ,
140- {
141- $project : {
142- _id : 0 ,
143- relayerId : '$_id' ,
144- count : 1 ,
145- } ,
146- } ,
147- ] ,
148- } ,
149- } ,
150- ] ) ;
151-
152- return results [ 0 ] . activeTraders . map ( item => {
153- const activeMakers = results [ 0 ] . activeMakers . find (
154- makerItem => makerItem . relayerId === item . relayerId ,
155- ) . count ;
156-
157- const activeTakers = results [ 0 ] . activeTakers . find (
158- takerItem => takerItem . relayerId === item . relayerId ,
159- ) . count ;
160-
161- return {
162- activeMakers,
163- activeTakers,
164- activeTraders : item . count ,
165- relayerId : item . relayerId ,
166- } ;
167- } ) ;
168- } ;
169-
1708const computeRelayerMetrics = async date => {
1719 const startOfDay = moment
17210 . utc ( date )
@@ -474,16 +312,11 @@ const computeRelayerMetrics = async date => {
474312 } ,
475313 ] ) ;
476314
477- const traderMetrics = await computeTraderMetrics ( startOfDay , endOfDay ) ;
478-
479315 logger . timeEnd ( profileLabel ) ;
480316
481317 if ( results . length === 0 ) {
482318 return [
483319 {
484- activeMakers : 0 ,
485- activeTakers : 0 ,
486- activeTraders : 0 ,
487320 date : startOfDay ,
488321 fees : {
489322 USD : 0 ,
@@ -501,16 +334,7 @@ const computeRelayerMetrics = async date => {
501334 ] ;
502335 }
503336
504- return results . map ( result => {
505- const tradersMetric = traderMetrics . find (
506- metric => metric . relayerId === result . relayerId ,
507- ) ;
508-
509- return {
510- ...result ,
511- ...tradersMetric ,
512- } ;
513- } ) ;
337+ return results ;
514338} ;
515339
516340module . exports = computeRelayerMetrics ;
0 commit comments