Skip to content

Commit b9b38c5

Browse files
author
ci-bot
committed
add new event
1 parent d526a81 commit b9b38c5

File tree

3 files changed

+212
-17
lines changed

3 files changed

+212
-17
lines changed

extract-dashboard-data.js

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
2-
const fs = require('fs')
2+
const fs = require('fs').promises
3+
const { spawnSync } = require('child_process');
34

45
require('dotenv').config()
56

@@ -40,39 +41,71 @@ function convertJsonToCsv(jsonData) {
4041
return csvContent;
4142
}
4243

43-
const getData = async (date, csvs) => {
44+
const ite = {}
45+
const getData = async (date, csvs, filter) => {
4446
console.log(`getting ${date}`)
45-
const ret = await fetch(`https://ethereumfoundation.matomo.cloud/index.php?module=API&method=Events.getName&idSite=23&period=day&date=${date}&format=JSON&token_auth=${process.env.MATOMO_API_KEY}&force_api_session=1&secondaryDimension=eventAction&flat=1&filter_limit=100000`)
46-
const retJson = await ret.json()
47+
48+
// const response = spawnSync(
49+
// `curl -X POST "https://ethereumfoundation.matomo.cloud/index.php?module=API&method=Events.getName&idSite=23&period=day&date=${date}&format=JSON&token_auth=${process.env.MATOMO_API_KEY}&force_api_session=1&secondaryDimension=eventAction&flat=1&filter_limit=100000" --output ./dashboard_data.json`, { shell:true })
50+
51+
const ret = await fetch(`https://matomo.remix.live/matomo/index.php?module=API&method=Events.getName&idSite=3&period=day&date=${date}&format=JSON&token_auth=${process.env.MATOMO_API_KEY}&force_api_session=1&secondaryDimension=eventCategory&flat=1&filter_limit=100000`)
4752

53+
// const data = await fs.readFile(`dashboard_data.json`, 'utf8');
54+
let retJson = []
55+
try {
56+
const txt = await ret.text()
57+
retJson = JSON.parse(txt)
58+
} catch (e) {
59+
console.log(e)
60+
return
61+
}
62+
63+
await fs.writeFile(`data/raw-${date}.json`, JSON.stringify(retJson, null, '\t'))
4864
for (const entry of retJson) {
49-
// console.log(entry)
50-
if (filter_deployContractTo(entry)) {
65+
if (filter(entry)) {
66+
// console.log(entry.Events_EventName)
67+
if (!ite[entry.label]) ite[entry.label] = parseInt(entry.nb_events)
68+
else ite[entry.label] = ite[entry.label] + parseInt(entry.nb_events)
69+
// console.log(entry)
70+
5171
if (!csvs[entry.label]) csvs[entry.label] = []
5272
csvs[entry.label].push({ Date: date, nb_events: entry.nb_events })
5373
}
5474
}
75+
5576
}
5677

57-
const run = async (startDate, endDate) => {
78+
let it = 0
79+
const run = async (startDate, endDate, filter) => {
5880
const csvs = {}
5981
let currentDate = new Date(startDate);
6082
while (currentDate <= endDate) {
6183
const formattedDate = currentDate.toISOString().split('T')[0];
62-
await getData(formattedDate, csvs);
84+
await getData(formattedDate, csvs, filter);
6385
currentDate.setDate(currentDate.getDate() + 1);
6486
}
65-
console.log(csvs, Object.keys(csvs).length)
66-
const content = convertJsonToCsv(csvs)
67-
fs.writeFileSync('data/deployContractTo.csv', content)
87+
// console.log(csvs, Object.keys(csvs).length)
88+
// console.log('____________________')
89+
// console.log(csvs['Main (1) network - DeployContractTo'])
90+
// const content = convertJsonToCsv(csvs)
91+
// fs.writeFile('data/transactions.csv', content)
92+
fs.writeFile('data/transactions.json', JSON.stringify(csvs, null, '\t'))
93+
fs.writeFile('data/networks.json', JSON.stringify(ite, null, '\t'))
94+
console.log('it', it)
6895
}
6996

70-
const startDate = new Date(2025, 0, 1)
97+
console.log('API KEY', process.env.MATOMO_API_KEY)
98+
const startDate = new Date(2025, 8, 22)
7199
console.log(startDate)
72100
const endDate = new Date()
73-
run(startDate, endDate).catch(console.error);
74101

75-
const filter_deployContractTo = (entry) => {
76-
return entry.Events_EventAction === 'DeployContractTo'
77-
}
102+
const eventsAction = ['DeployContractTo', 'transact', 'call', 'send', 'sendTransaction-from-gui', 'sendTransaction-from-plugin']
103+
104+
run(startDate, endDate, (entry) => {
105+
if (entry.Events_EventName.startsWith('0x') && entry.Events_EventCategory === 'udapp') {
106+
it++
107+
return true
108+
}
109+
return eventsAction.includes(entry.Events_EventAction)
110+
}).catch(console.error);
78111

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"license": "ISC",
1111
"dependencies": {
1212
"csv-writer": "1.6.0",
13-
"dotenv": "^16.5.0"
13+
"dotenv": "^16.5.0",
14+
"axios": "^1.10.0"
1415
}
1516
}

yarn.lock

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,173 @@
22
# yarn lockfile v1
33

44

5+
asynckit@^0.4.0:
6+
version "0.4.0"
7+
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
8+
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
9+
10+
axios@^1.10.0:
11+
version "1.10.0"
12+
resolved "https://registry.yarnpkg.com/axios/-/axios-1.10.0.tgz#af320aee8632eaf2a400b6a1979fa75856f38d54"
13+
integrity sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==
14+
dependencies:
15+
follow-redirects "^1.15.6"
16+
form-data "^4.0.0"
17+
proxy-from-env "^1.1.0"
18+
19+
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
20+
version "1.0.2"
21+
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
22+
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
23+
dependencies:
24+
es-errors "^1.3.0"
25+
function-bind "^1.1.2"
26+
27+
combined-stream@^1.0.8:
28+
version "1.0.8"
29+
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
30+
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
31+
dependencies:
32+
delayed-stream "~1.0.0"
33+
534
635
version "1.6.0"
736
resolved "https://registry.npmjs.org/csv-writer/-/csv-writer-1.6.0.tgz"
837
integrity sha512-NOx7YDFWEsM/fTRAJjRpPp8t+MKRVvniAg9wQlUKx20MFrPs73WLJhFf5iteqrxNYnsy924K3Iroh3yNHeYd2g==
938

39+
delayed-stream@~1.0.0:
40+
version "1.0.0"
41+
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
42+
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
43+
1044
dotenv@^16.5.0:
1145
version "16.5.0"
1246
resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz"
1347
integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
48+
49+
dunder-proto@^1.0.1:
50+
version "1.0.1"
51+
resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
52+
integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
53+
dependencies:
54+
call-bind-apply-helpers "^1.0.1"
55+
es-errors "^1.3.0"
56+
gopd "^1.2.0"
57+
58+
es-define-property@^1.0.1:
59+
version "1.0.1"
60+
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
61+
integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
62+
63+
es-errors@^1.3.0:
64+
version "1.3.0"
65+
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
66+
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
67+
68+
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
69+
version "1.1.1"
70+
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
71+
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
72+
dependencies:
73+
es-errors "^1.3.0"
74+
75+
es-set-tostringtag@^2.1.0:
76+
version "2.1.0"
77+
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
78+
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
79+
dependencies:
80+
es-errors "^1.3.0"
81+
get-intrinsic "^1.2.6"
82+
has-tostringtag "^1.0.2"
83+
hasown "^2.0.2"
84+
85+
follow-redirects@^1.15.6:
86+
version "1.15.9"
87+
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
88+
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
89+
90+
form-data@^4.0.0:
91+
version "4.0.4"
92+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
93+
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
94+
dependencies:
95+
asynckit "^0.4.0"
96+
combined-stream "^1.0.8"
97+
es-set-tostringtag "^2.1.0"
98+
hasown "^2.0.2"
99+
mime-types "^2.1.12"
100+
101+
function-bind@^1.1.2:
102+
version "1.1.2"
103+
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
104+
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
105+
106+
get-intrinsic@^1.2.6:
107+
version "1.3.0"
108+
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
109+
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
110+
dependencies:
111+
call-bind-apply-helpers "^1.0.2"
112+
es-define-property "^1.0.1"
113+
es-errors "^1.3.0"
114+
es-object-atoms "^1.1.1"
115+
function-bind "^1.1.2"
116+
get-proto "^1.0.1"
117+
gopd "^1.2.0"
118+
has-symbols "^1.1.0"
119+
hasown "^2.0.2"
120+
math-intrinsics "^1.1.0"
121+
122+
get-proto@^1.0.1:
123+
version "1.0.1"
124+
resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
125+
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
126+
dependencies:
127+
dunder-proto "^1.0.1"
128+
es-object-atoms "^1.0.0"
129+
130+
gopd@^1.2.0:
131+
version "1.2.0"
132+
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
133+
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
134+
135+
has-symbols@^1.0.3, has-symbols@^1.1.0:
136+
version "1.1.0"
137+
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
138+
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
139+
140+
has-tostringtag@^1.0.2:
141+
version "1.0.2"
142+
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
143+
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
144+
dependencies:
145+
has-symbols "^1.0.3"
146+
147+
hasown@^2.0.2:
148+
version "2.0.2"
149+
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
150+
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
151+
dependencies:
152+
function-bind "^1.1.2"
153+
154+
math-intrinsics@^1.1.0:
155+
version "1.1.0"
156+
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
157+
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
158+
159+
160+
version "1.52.0"
161+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
162+
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
163+
164+
mime-types@^2.1.12:
165+
version "2.1.35"
166+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
167+
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
168+
dependencies:
169+
mime-db "1.52.0"
170+
171+
proxy-from-env@^1.1.0:
172+
version "1.1.0"
173+
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
174+
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==

0 commit comments

Comments
 (0)