@@ -11,33 +11,47 @@ type DataItem = {
11
11
12
12
const TXCOSTS_MEDIAN_USD = "txcosts_median_usd"
13
13
const TXCOUNT = "txcount"
14
+ const ACTIVE_ADDRESSES = "aa_last7d"
14
15
15
16
export const fetchGrowThePie = async ( ) : Promise < GrowThePieData > => {
16
17
const url = "https://api.growthepie.xyz/v1/fundamentals.json"
17
18
18
- const response = await fetch ( url )
19
+ const response = await fetch ( url , { cache : "no-store" } )
19
20
if ( ! response . ok ) {
20
21
console . log ( response . status , response . statusText )
21
22
throw new Error ( "Failed to fetch growthepie data" )
22
23
}
23
24
const data : DataItem [ ] = await response . json ( )
24
25
25
- const mostRecentDate = data . reduce ( ( latest , item ) => {
26
+ // Get the date 7 days ago
27
+ const sevenDaysAgo = new Date ( )
28
+ sevenDaysAgo . setDate ( sevenDaysAgo . getDate ( ) - 7 )
29
+
30
+ // Filter data to only include the last 7 days and the metrics we need
31
+ const filteredData = data . filter ( ( item ) => {
32
+ const itemDate = new Date ( item . date )
33
+ return (
34
+ itemDate >= sevenDaysAgo &&
35
+ [ TXCOSTS_MEDIAN_USD , TXCOUNT , ACTIVE_ADDRESSES ] . includes ( item . metric_key )
36
+ )
37
+ } )
38
+
39
+ const mostRecentDate = filteredData . reduce ( ( latest , item ) => {
26
40
const itemDate = new Date ( item . date )
27
41
return itemDate > new Date ( latest ) ? item . date : latest
28
- } , data [ 0 ] . date )
42
+ } , filteredData [ 0 ] . date )
29
43
30
- const activeAddresses = data
44
+ const activeAddresses = filteredData
31
45
. filter ( ( item ) => item . date === mostRecentDate )
32
- . filter ( ( item ) => item . metric_key === "aa_last7d" )
46
+ . filter ( ( item ) => item . metric_key === ACTIVE_ADDRESSES )
33
47
. reduce ( ( acc , item ) => {
34
48
return {
35
49
...acc ,
36
50
[ item . origin_key ] : item . value ,
37
51
}
38
52
} , { } )
39
53
40
- const mostRecentData = data . filter (
54
+ const mostRecentData = filteredData . filter (
41
55
( item ) =>
42
56
item . date === mostRecentDate &&
43
57
[ TXCOSTS_MEDIAN_USD , TXCOUNT ] . includes ( item . metric_key )
0 commit comments