mohcineelharras commited on
Commit
5901908
1 Parent(s): a45d429

graph done

Browse files
app.py CHANGED
@@ -10,6 +10,7 @@ from dotenv import load_dotenv
10
  from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
11
  import plotly.express as px
12
  import json
 
13
 
14
  # ------------------------ Environment Variables --------------------------
15
 
@@ -125,53 +126,205 @@ def display_greed_fear_index():
125
  except FileNotFoundError:
126
  st.error("Greed and Fear index data not available. Please wait for the next update cycle.")
127
 
128
- #-------------------------------------scheduler ----------------------------------
129
-
130
- # Function to execute the scraping functions
131
- def execute_etherscan_scraping():
132
- subprocess.call(["python", "utils/scrap_etherscan.py"])
133
- logging.info("Etherscan scraping completed")
134
- threading.Timer(3600, execute_etherscan_scraping).start()
135
 
136
- # Balancer scrapping
137
- def execute_influencers_scraping():
138
- subprocess.call(["python", "utils/scrap_influencers_balance.py"])
139
- logging.info("Influencers balance scraping completed")
140
- threading.Timer(3600, execute_influencers_scraping).start() # Run every hour, for example
141
 
142
-
143
- # Function to execute the scraping functions
144
- def execute_cmc_scraping():
145
- subprocess.call(["python", "utils/scrap_cmc.py"])
146
- logging.info("CMC scraping completed")
147
- threading.Timer(2592000 / 9000, execute_cmc_scraping).start()
 
 
148
 
 
 
 
149
 
150
- # Function to execute the global metrics scraping
151
- def execute_global_metrics_scraping():
152
- subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
153
- logging.info("Global metrics scraping completed")
154
- threading.Timer(2592000 / 9000, execute_influencers_scraping).start() # Run every hour, for example
155
 
156
- def execute_greed_fear_index_scraping():
157
- subprocess.call(["python", "utils/scrap_greed_fear_index.py"])
158
- logging.info("Greed and Fear index scraping completed")
159
- threading.Timer(3600, execute_greed_fear_index_scraping).start() # Adjust the interval as needed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
 
161
 
162
- if "initialized" not in st.session_state:
163
- # Start the scraping threads
164
- threading.Thread(target=execute_etherscan_scraping).start()
165
- threading.Thread(target=execute_cmc_scraping).start()
166
- threading.Thread(target=execute_influencers_scraping).start()
167
- threading.Thread(target=execute_global_metrics_scraping).start()
168
- threading.Thread(target=execute_greed_fear_index_scraping).start()
169
- st.session_state["initialized"] = True
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
 
171
  #-------------------------------------streamlit ----------------------------------
172
 
173
  # Set the title and other page configurations
174
  st.title('Crypto Analysis')
 
 
 
 
 
 
 
 
 
 
 
175
 
176
  st.header("Global Cryptocurrency Market Metrics")
177
  # Create two columns for the two plots
@@ -259,7 +412,7 @@ with col1:
259
  selected_token = st.selectbox('Select Token', df_etherscan['tokenSymbol'].unique(), index=0)
260
  # Filter the data based on the selected token
261
  filtered_df = df_etherscan[df_etherscan['tokenSymbol'] == selected_token]
262
- # Plot the token value over time
263
  st.plotly_chart(
264
  go.Figure(
265
  data=[
@@ -267,13 +420,13 @@ with col1:
267
  x=filtered_df['timeStamp'],
268
  y=filtered_df['value'],
269
  mode='lines',
270
- name='Value over time'
271
  )
272
  ],
273
  layout=go.Layout(
274
- title='Token Value Over Time',
275
  yaxis=dict(
276
- title=f'Value ({selected_token})',
277
  ),
278
  showlegend=True,
279
  legend=go.layout.Legend(x=0, y=1.0),
@@ -284,7 +437,34 @@ with col1:
284
  )
285
  )
286
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
 
 
 
 
 
 
 
 
 
 
 
288
  with col2:
289
  influencers = load_influencers()
290
  with st.container():
@@ -342,7 +522,21 @@ with col2:
342
  else:
343
  logging.info("DataFrame is empty")
344
 
345
-
346
- st.header("Deep Dive into Specific Coins")
347
-
 
 
 
 
 
 
 
 
 
 
 
 
 
348
  #-------------------------------------end ----------------------------------
 
 
10
  from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
11
  import plotly.express as px
12
  import json
13
+ import networkx as nx
14
 
15
  # ------------------------ Environment Variables --------------------------
16
 
 
126
  except FileNotFoundError:
127
  st.error("Greed and Fear index data not available. Please wait for the next update cycle.")
128
 
129
+ def load_token_balances():
130
+ try:
131
+ return pd.read_csv("output/influencers_token_balances.csv")
132
+ except FileNotFoundError:
133
+ logging.warning("Token balances file not found.")
134
+ return pd.DataFrame() # Return an empty DataFrame if file is not found
 
135
 
136
+ def create_token_balance_bar_plot(df):
137
+ if df.empty:
138
+ return go.Figure() # Return an empty figure if there is no data
 
 
139
 
140
+ fig = px.bar(df, x="Influencer", y="Balance", color="Token", barmode="group")
141
+ fig.update_layout(
142
+ title="Token Balances of Influencers",
143
+ xaxis_title="Influencer",
144
+ yaxis_title="Token Balance",
145
+ legend_title="Token"
146
+ )
147
+ return fig
148
 
149
+ def get_top_buyers(df, token, top_n=5):
150
+ # Filter for selected token
151
+ token_df = df[df['tokenSymbol'] == token]
152
 
153
+ # Assuming 'value' column holds the amount bought and 'from' column holds the buyer's address
154
+ top_buyers = token_df.groupby('from')['value'].sum().sort_values(ascending=False).head(top_n)
 
 
 
155
 
156
+ return top_buyers.reset_index()
157
+
158
+ def plot_top_buyers(df):
159
+ fig = px.bar(df, x='from', y='value', title=f'Top 5 Buyers of {selected_token}',orientation="h")
160
+ fig.update_layout(xaxis_title="Address", yaxis_title="Total Amount Bought")
161
+ return fig
162
+
163
+ def load_influencer_interactions(influencer_name):
164
+ try:
165
+ # Load the influencer addresses dictionary
166
+ with open("ressources/dict_influencers_addr.json", "r") as file:
167
+ influencers = json.load(file)
168
+
169
+ # Get the address of the specified influencer
170
+ influencer_address = influencers.get(influencer_name, None)
171
+ if influencer_address is None:
172
+ return pd.DataFrame(), None
173
+
174
+ file_path = f"output/interactions_{influencer_name}.csv"
175
+ df = pd.read_csv(file_path)
176
+
177
+ # Keep only the 'from', 'to', and 'value' columns and remove duplicates
178
+ df = df[['from', 'to', 'value']].drop_duplicates()
179
+ return df, influencer_address
180
+ except FileNotFoundError:
181
+ return pd.DataFrame(), None
182
+
183
+
184
+ def create_network_graph(df, influencer_name, influencer_address):
185
+ G = nx.Graph()
186
+
187
+ # Consider bidirectional interactions
188
+ df_bi = pd.concat([df.rename(columns={'from': 'to', 'to': 'from'}), df])
189
+ interaction_counts = df_bi.groupby(['from', 'to']).size().reset_index(name='count')
190
+ top_interactions = interaction_counts.sort_values('count', ascending=False).head(20)
191
+
192
+ # Add edges and nodes to the graph
193
+ for _, row in top_interactions.iterrows():
194
+ G.add_edge(row['from'], row['to'], weight=row['count'])
195
+ G.add_node(row['from'], type='sender')
196
+ G.add_node(row['to'], type='receiver')
197
+
198
+ # Node positions
199
+ pos = nx.spring_layout(G, weight='weight')
200
+
201
+ # Edge trace
202
+ edge_x = []
203
+ edge_y = []
204
+ edge_hover = []
205
+ for edge in G.edges(data=True):
206
+ x0, y0 = pos[edge[0]]
207
+ x1, y1 = pos[edge[1]]
208
+ edge_x.extend([x0, x1, None])
209
+ edge_y.extend([y0, y1, None])
210
+ edge_hover.append(f'Interactions: {edge[2]["weight"]}')
211
+
212
+ edge_trace = go.Scatter(
213
+ x=edge_x, y=edge_y,
214
+ line=dict(width=2, color='#888'),
215
+ hoverinfo='text',
216
+ text=edge_hover,
217
+ mode='lines')
218
+
219
+ # Node trace
220
+ node_x = []
221
+ node_y = []
222
+ node_hover = []
223
+ node_size = []
224
+
225
+ for node in G.nodes():
226
+ x, y = pos[node]
227
+ node_x.append(x)
228
+ node_y.append(y)
229
+ connections = len(G.edges(node))
230
+ interaction_sum = interaction_counts[interaction_counts['from'].eq(node) | interaction_counts['to'].eq(node)]['count'].sum()
231
+ node_hover_info = f'Address: {node}<br># of connections: {connections}<br># of interactions: {interaction_sum}'
232
+ if node == influencer_address:
233
+ node_hover_info = f'Influencer: {influencer_name}<br>' + node_hover_info
234
+ node_size.append(30) # Central node size
235
+ else:
236
+ node_size.append(20) # Other nodes size
237
+ node_hover.append(node_hover_info)
238
+
239
+ node_trace = go.Scatter(
240
+ x=node_x, y=node_y,
241
+ mode='markers',
242
+ hoverinfo='text',
243
+ text=node_hover,
244
+ marker=dict(
245
+ showscale=False,
246
+ color='blue',
247
+ size=node_size,
248
+ line=dict(width=2, color='black')))
249
+
250
+ # Create figure
251
+ fig = go.Figure(data=[edge_trace, node_trace],
252
+ layout=go.Layout(
253
+ title=f'<br>Network graph of wallet interactions for {influencer_name}',
254
+ titlefont=dict(size=16),
255
+ showlegend=False,
256
+ hovermode='closest',
257
+ margin=dict(b=20, l=5, r=5, t=40),
258
+ xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
259
+ yaxis=dict(showgrid=False, zeroline=False, showticklabels=False)))
260
+
261
+ return fig, top_interactions
262
 
263
 
264
+ #-------------------------------------scheduler ----------------------------------
265
+
266
+ # # Function to execute the scraping functions
267
+ # def execute_etherscan_scraping():
268
+ # subprocess.call(["python", "utils/scrap_etherscan.py"])
269
+ # logging.info("Etherscan scraping completed")
270
+ # threading.Timer(3600, execute_etherscan_scraping).start()
271
+
272
+ # # Balancer scrapping
273
+ # def execute_influencers_scraping():
274
+ # subprocess.call(["python", "utils/scrap_influencers_balance.py"])
275
+ # logging.info("Influencers balance scraping completed")
276
+ # threading.Timer(3600, execute_influencers_scraping).start()
277
+
278
+
279
+ # # Function to execute the scraping functions
280
+ # def execute_cmc_scraping():
281
+ # subprocess.call(["python", "utils/scrap_cmc.py"])
282
+ # logging.info("CMC scraping completed")
283
+ # threading.Timer(2592000 / 9000, execute_cmc_scraping).start()
284
+
285
+
286
+ # # Function to execute the global metrics scraping
287
+ # def execute_global_metrics_scraping():
288
+ # subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
289
+ # logging.info("Global metrics scraping completed")
290
+ # threading.Timer(2592000 / 9000, execute_influencers_scraping).start()
291
+
292
+ # def execute_greed_fear_index_scraping():
293
+ # subprocess.call(["python", "utils/scrap_greed_fear_index.py"])
294
+ # logging.info("Greed and Fear index scraping completed")
295
+ # threading.Timer(3600, execute_greed_fear_index_scraping).start()
296
+
297
+ # def execute_token_balances_scraping():
298
+ # subprocess.call(["python", "utils/extract_tokens_balances.py"])
299
+ # logging.info("Token balances scraping completed")
300
+ # threading.Timer(3600, execute_token_balances_scraping).start()
301
+
302
+
303
+ # if "initialized" not in st.session_state:
304
+ # # Start the scraping threads
305
+ # threading.Thread(target=execute_etherscan_scraping).start()
306
+ # threading.Thread(target=execute_cmc_scraping).start()
307
+ # threading.Thread(target=execute_influencers_scraping).start()
308
+ # threading.Thread(target=execute_global_metrics_scraping).start()
309
+ # threading.Thread(target=execute_greed_fear_index_scraping).start()
310
+ # threading.Thread(target=execute_token_balances_scraping).start()
311
+ # st.session_state["initialized"] = True
312
 
313
  #-------------------------------------streamlit ----------------------------------
314
 
315
  # Set the title and other page configurations
316
  st.title('Crypto Analysis')
317
+ st.write("Welcome to the Crypto Analysis app. Please note that data is not updated automatically due to API plan limitations.")
318
+ # Update Data Button
319
+ if st.button("Scrap new data"):
320
+ # Execute the scripts in the 'utils' folder to update data
321
+ subprocess.call(["python", "utils/scrap_etherscan.py"])
322
+ subprocess.call(["python", "utils/scrap_cmc.py"])
323
+ subprocess.call(["python", "utils/scrap_influencers_balance.py"])
324
+ subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
325
+ subprocess.call(["python", "utils/scrap_greed_fear_index.py"])
326
+ subprocess.call(["python", "utils/extract_tokens_balances.py"])
327
+ st.success("Data updated successfully!")
328
 
329
  st.header("Global Cryptocurrency Market Metrics")
330
  # Create two columns for the two plots
 
412
  selected_token = st.selectbox('Select Token', df_etherscan['tokenSymbol'].unique(), index=0)
413
  # Filter the data based on the selected token
414
  filtered_df = df_etherscan[df_etherscan['tokenSymbol'] == selected_token]
415
+ # Plot the token volume over time
416
  st.plotly_chart(
417
  go.Figure(
418
  data=[
 
420
  x=filtered_df['timeStamp'],
421
  y=filtered_df['value'],
422
  mode='lines',
423
+ name='Volume over time'
424
  )
425
  ],
426
  layout=go.Layout(
427
+ title='Token Volume Over Time',
428
  yaxis=dict(
429
+ title=f'Volume ({selected_token})',
430
  ),
431
  showlegend=True,
432
  legend=go.layout.Legend(x=0, y=1.0),
 
437
  )
438
  )
439
  )
440
+ with col2:
441
+ # Token selection
442
+ selected_token = st.selectbox('Select a Token', df_etherscan['tokenSymbol'].unique())
443
+
444
+ # Processing data
445
+ top_buyers_df = get_top_buyers(df_etherscan, selected_token)
446
+
447
+ # Plotting
448
+ if not top_buyers_df.empty:
449
+ top_buyers_fig = plot_top_buyers(top_buyers_df)
450
+ top_buyers_fig.update_layout(
451
+ autosize=False,
452
+ width=300,
453
+ height=300)
454
+ st.plotly_chart(top_buyers_fig)
455
+ else:
456
+ st.write(f"No buying data available for {selected_token}")
457
 
458
+
459
+ st.header("Influencers' Token Balances")
460
+ token_balances_df = load_token_balances()
461
+ col1, col2 = st.columns(2)
462
+ with col1:
463
+ if not token_balances_df.empty:
464
+ token_balance_fig = create_token_balance_bar_plot(token_balances_df)
465
+ st.plotly_chart(token_balance_fig)
466
+ else:
467
+ st.write("No token balance data available.")
468
  with col2:
469
  influencers = load_influencers()
470
  with st.container():
 
522
  else:
523
  logging.info("DataFrame is empty")
524
 
525
+ # In the Streamlit app
526
+ st.header("Wallet Interactions Network Graph")
527
+ selected_influencer = st.selectbox("Select an Influencer", list(influencers.keys()))
528
+ # Load interactions data for the selected influencer
529
+ interactions_df, influencer_address = load_influencer_interactions(selected_influencer)
530
+ if not interactions_df.empty:
531
+ # Generate the network graph and the table of top interactions
532
+ network_fig, top_interactions = create_network_graph(interactions_df, selected_influencer, influencer_address)
533
+ # Display the network graph
534
+ st.plotly_chart(network_fig)
535
+ # Display the table of top interactions
536
+ st.subheader(f"Top Interactions for {selected_influencer}")
537
+ st.table(top_interactions)
538
+ else:
539
+ st.write(f"No wallet interaction data available for {selected_influencer}.")
540
+
541
  #-------------------------------------end ----------------------------------
542
+
logs/scrapping/cmc_global_metrics.log CHANGED
@@ -37,3 +37,27 @@
37
  2023-11-28 01:58:45,913 [INFO] - Global metrics data fetched successfully.
38
  2023-11-28 01:59:14,099 [INFO] - Global metrics data fetched successfully.
39
  2023-11-28 01:59:31,047 [INFO] - Global metrics data fetched successfully.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  2023-11-28 01:58:45,913 [INFO] - Global metrics data fetched successfully.
38
  2023-11-28 01:59:14,099 [INFO] - Global metrics data fetched successfully.
39
  2023-11-28 01:59:31,047 [INFO] - Global metrics data fetched successfully.
40
+ 2023-11-28 10:33:32,014 [INFO] - Global metrics data fetched successfully.
41
+ 2023-11-28 10:33:53,067 [INFO] - Global metrics data fetched successfully.
42
+ 2023-11-28 10:36:53,158 [INFO] - Global metrics data fetched successfully.
43
+ 2023-11-28 10:44:58,663 [INFO] - Global metrics data fetched successfully.
44
+ 2023-11-28 10:47:21,116 [INFO] - Global metrics data fetched successfully.
45
+ 2023-11-28 11:07:40,154 [INFO] - Global metrics data fetched successfully.
46
+ 2023-11-28 11:09:39,424 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fb111a4e310>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
47
+ 2023-11-28 11:11:46,917 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f02646b77d0>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
48
+ 2023-11-28 11:13:43,073 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f757a99e350>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
49
+ 2023-11-28 11:31:55,662 [INFO] - Global metrics data fetched successfully.
50
+ 2023-11-28 11:33:16,437 [INFO] - Global metrics data fetched successfully.
51
+ 2023-11-28 11:38:31,535 [INFO] - Global metrics data fetched successfully.
52
+ 2023-11-28 11:41:56,440 [INFO] - Global metrics data fetched successfully.
53
+ 2023-11-28 11:42:08,580 [INFO] - Global metrics data fetched successfully.
54
+ 2023-11-28 11:43:43,358 [INFO] - Global metrics data fetched successfully.
55
+ 2023-11-28 11:57:15,728 [INFO] - Global metrics data fetched successfully.
56
+ 2023-11-28 11:58:10,309 [INFO] - Global metrics data fetched successfully.
57
+ 2023-11-28 12:05:40,716 [INFO] - Global metrics data fetched successfully.
58
+ 2023-11-28 12:06:18,520 [INFO] - Global metrics data fetched successfully.
59
+ 2023-11-28 12:08:03,238 [INFO] - Global metrics data fetched successfully.
60
+ 2023-11-28 12:18:14,152 [INFO] - Global metrics data fetched successfully.
61
+ 2023-11-28 13:10:39,099 [INFO] - Global metrics data fetched successfully.
62
+ 2023-11-28 13:12:08,480 [INFO] - Global metrics data fetched successfully.
63
+ 2023-11-28 13:22:26,139 [INFO] - Global metrics data fetched successfully.
logs/scrapping/cmc_scrapping.log CHANGED
@@ -450,3 +450,107 @@
450
  2023-11-28 01:59:31,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.22 seconds
451
  2023-11-28 01:59:54,297 [INFO] - CMC data script execution completed.
452
  2023-11-28 01:59:54,298 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  2023-11-28 01:59:31,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.22 seconds
451
  2023-11-28 01:59:54,297 [INFO] - CMC data script execution completed.
452
  2023-11-28 01:59:54,298 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
453
+ 2023-11-28 10:33:32,105 [INFO] - CMC data script execution completed.
454
+ 2023-11-28 10:33:32,106 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
455
+ 2023-11-28 10:33:53,199 [INFO] - CMC data script execution completed.
456
+ 2023-11-28 10:33:53,200 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
457
+ 2023-11-28 10:36:53,233 [INFO] - CMC data script execution completed.
458
+ 2023-11-28 10:36:53,234 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
459
+ 2023-11-28 10:38:20,700 [INFO] - CMC data script execution completed.
460
+ 2023-11-28 10:38:20,701 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
461
+ 2023-11-28 10:38:41,968 [INFO] - CMC data script execution completed.
462
+ 2023-11-28 10:38:41,969 [INFO] - Function fetch_and_process_cmc_data executed in 0.51 seconds
463
+ 2023-11-28 10:41:41,771 [INFO] - CMC data script execution completed.
464
+ 2023-11-28 10:41:41,772 [INFO] - Function fetch_and_process_cmc_data executed in 0.23 seconds
465
+ 2023-11-28 10:43:09,822 [INFO] - CMC data script execution completed.
466
+ 2023-11-28 10:43:09,824 [INFO] - Function fetch_and_process_cmc_data executed in 0.80 seconds
467
+ 2023-11-28 10:43:30,480 [INFO] - CMC data script execution completed.
468
+ 2023-11-28 10:43:30,482 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
469
+ 2023-11-28 10:44:58,815 [INFO] - CMC data script execution completed.
470
+ 2023-11-28 10:44:58,816 [INFO] - Function fetch_and_process_cmc_data executed in 0.32 seconds
471
+ 2023-11-28 10:47:21,447 [INFO] - CMC data script execution completed.
472
+ 2023-11-28 10:47:21,449 [INFO] - Function fetch_and_process_cmc_data executed in 0.49 seconds
473
+ 2023-11-28 10:52:10,034 [INFO] - CMC data script execution completed.
474
+ 2023-11-28 10:52:10,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
475
+ 2023-11-28 10:56:58,591 [INFO] - CMC data script execution completed.
476
+ 2023-11-28 10:56:58,592 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
477
+ 2023-11-28 11:01:47,106 [INFO] - CMC data script execution completed.
478
+ 2023-11-28 11:01:47,107 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
479
+ 2023-11-28 11:06:35,611 [INFO] - CMC data script execution completed.
480
+ 2023-11-28 11:06:35,612 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
481
+ 2023-11-28 11:07:40,264 [INFO] - CMC data script execution completed.
482
+ 2023-11-28 11:07:40,266 [INFO] - Function fetch_and_process_cmc_data executed in 0.29 seconds
483
+ 2023-11-28 11:09:39,426 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fc49cbd3650>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
484
+ 2023-11-28 11:09:39,426 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
485
+ 2023-11-28 11:11:46,897 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f90ef296250>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
486
+ 2023-11-28 11:11:46,897 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
487
+ 2023-11-28 11:13:43,052 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f07f5f9fb90>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
488
+ 2023-11-28 11:13:43,052 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
489
+ 2023-11-28 11:14:37,758 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fdb32cd6a50>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
490
+ 2023-11-28 11:14:37,758 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
491
+ 2023-11-28 11:16:35,556 [INFO] - CMC data script execution completed.
492
+ 2023-11-28 11:16:35,557 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
493
+ 2023-11-28 11:18:31,730 [INFO] - CMC data script execution completed.
494
+ 2023-11-28 11:18:31,731 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
495
+ 2023-11-28 11:19:26,248 [INFO] - CMC data script execution completed.
496
+ 2023-11-28 11:19:26,249 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
497
+ 2023-11-28 11:21:24,060 [INFO] - CMC data script execution completed.
498
+ 2023-11-28 11:21:24,061 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
499
+ 2023-11-28 11:23:20,350 [INFO] - CMC data script execution completed.
500
+ 2023-11-28 11:23:20,352 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
501
+ 2023-11-28 11:24:14,814 [INFO] - CMC data script execution completed.
502
+ 2023-11-28 11:24:14,815 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
503
+ 2023-11-28 11:26:12,552 [INFO] - CMC data script execution completed.
504
+ 2023-11-28 11:26:12,553 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
505
+ 2023-11-28 11:28:08,878 [INFO] - CMC data script execution completed.
506
+ 2023-11-28 11:28:08,879 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
507
+ 2023-11-28 11:29:03,395 [INFO] - CMC data script execution completed.
508
+ 2023-11-28 11:29:03,396 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
509
+ 2023-11-28 11:31:01,093 [INFO] - CMC data script execution completed.
510
+ 2023-11-28 11:31:01,094 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
511
+ 2023-11-28 11:31:55,758 [INFO] - CMC data script execution completed.
512
+ 2023-11-28 11:31:55,760 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
513
+ 2023-11-28 11:33:16,503 [INFO] - CMC data script execution completed.
514
+ 2023-11-28 11:33:16,505 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
515
+ 2023-11-28 11:38:31,661 [INFO] - CMC data script execution completed.
516
+ 2023-11-28 11:38:31,662 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
517
+ 2023-11-28 11:41:56,517 [INFO] - CMC data script execution completed.
518
+ 2023-11-28 11:41:56,518 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
519
+ 2023-11-28 11:42:08,632 [INFO] - CMC data script execution completed.
520
+ 2023-11-28 11:42:08,633 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
521
+ 2023-11-28 11:43:43,468 [INFO] - CMC data script execution completed.
522
+ 2023-11-28 11:43:43,470 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
523
+ 2023-11-28 11:48:32,034 [INFO] - CMC data script execution completed.
524
+ 2023-11-28 11:48:32,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
525
+ 2023-11-28 11:53:20,611 [INFO] - CMC data script execution completed.
526
+ 2023-11-28 11:53:20,612 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
527
+ 2023-11-28 11:57:15,865 [INFO] - CMC data script execution completed.
528
+ 2023-11-28 11:57:15,866 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
529
+ 2023-11-28 11:58:10,401 [INFO] - CMC data script execution completed.
530
+ 2023-11-28 11:58:10,403 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
531
+ 2023-11-28 12:05:41,082 [INFO] - CMC data script execution completed.
532
+ 2023-11-28 12:05:41,083 [INFO] - Function fetch_and_process_cmc_data executed in 0.54 seconds
533
+ 2023-11-28 12:06:18,449 [INFO] - CMC data script execution completed.
534
+ 2023-11-28 12:06:18,450 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
535
+ 2023-11-28 12:08:03,421 [INFO] - CMC data script execution completed.
536
+ 2023-11-28 12:08:03,422 [INFO] - Function fetch_and_process_cmc_data executed in 0.35 seconds
537
+ 2023-11-28 12:11:07,111 [INFO] - CMC data script execution completed.
538
+ 2023-11-28 12:11:07,112 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
539
+ 2023-11-28 12:12:51,988 [INFO] - CMC data script execution completed.
540
+ 2023-11-28 12:12:51,989 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
541
+ 2023-11-28 12:15:55,603 [INFO] - CMC data script execution completed.
542
+ 2023-11-28 12:15:55,604 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
543
+ 2023-11-28 12:17:40,504 [INFO] - CMC data script execution completed.
544
+ 2023-11-28 12:17:40,505 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
545
+ 2023-11-28 12:18:14,263 [INFO] - CMC data script execution completed.
546
+ 2023-11-28 12:18:14,264 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
547
+ 2023-11-28 12:23:02,901 [INFO] - CMC data script execution completed.
548
+ 2023-11-28 12:23:02,902 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
549
+ 2023-11-28 13:10:39,209 [INFO] - CMC data script execution completed.
550
+ 2023-11-28 13:10:39,210 [INFO] - Function fetch_and_process_cmc_data executed in 0.28 seconds
551
+ 2023-11-28 13:12:08,803 [INFO] - CMC data script execution completed.
552
+ 2023-11-28 13:12:08,804 [INFO] - Function fetch_and_process_cmc_data executed in 0.44 seconds
553
+ 2023-11-28 13:16:57,350 [INFO] - CMC data script execution completed.
554
+ 2023-11-28 13:16:57,351 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
555
+ 2023-11-28 13:22:25,021 [INFO] - CMC data script execution completed.
556
+ 2023-11-28 13:22:25,022 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
logs/scrapping/etherscan_scrap.log CHANGED
@@ -343,3 +343,65 @@
343
  2023-11-28 01:59:52,774 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
344
  2023-11-28 01:59:52,774 [INFO] - Etherscan scraping script execution completed.
345
  2023-11-28 01:59:52,774 [INFO] - Function fetch_and_update_etherscan executed in 21.97 seconds
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  2023-11-28 01:59:52,774 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
344
  2023-11-28 01:59:52,774 [INFO] - Etherscan scraping script execution completed.
345
  2023-11-28 01:59:52,774 [INFO] - Function fetch_and_update_etherscan executed in 21.97 seconds
346
+ 2023-11-28 10:33:33,310 [ERROR] - Invalid data format for transactions: Max rate limit reached
347
+ 2023-11-28 10:33:33,310 [ERROR] - 'timeStamp' key not found in the response data.
348
+ 2023-11-28 10:33:54,267 [ERROR] - Invalid data format for transactions: Max rate limit reached
349
+ 2023-11-28 10:33:54,268 [ERROR] - 'timeStamp' key not found in the response data.
350
+ 2023-11-28 10:37:14,138 [INFO] - Created files:
351
+ 2023-11-28 10:37:14,138 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
352
+ 2023-11-28 10:37:14,138 [INFO] - Etherscan scraping script execution completed.
353
+ 2023-11-28 10:37:14,138 [INFO] - Function fetch_and_update_etherscan executed in 21.15 seconds
354
+ 2023-11-28 10:44:59,904 [ERROR] - Invalid data format for transactions: Max rate limit reached
355
+ 2023-11-28 10:44:59,904 [ERROR] - 'timeStamp' key not found in the response data.
356
+ 2023-11-28 10:47:12,849 [INFO] - Created files: output/transactions_COPI.csv
357
+ 2023-11-28 10:47:12,849 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
358
+ 2023-11-28 10:47:12,849 [INFO] - Etherscan scraping script execution completed.
359
+ 2023-11-28 10:47:12,849 [INFO] - Function fetch_and_update_etherscan executed in 22.67 seconds
360
+ 2023-11-28 10:47:25,889 [ERROR] - Invalid data format for transactions: Max rate limit reached
361
+ 2023-11-28 10:47:25,889 [ERROR] - 'timeStamp' key not found in the response data.
362
+ 2023-11-28 11:07:41,378 [ERROR] - Invalid data format for transactions: Max rate limit reached
363
+ 2023-11-28 11:07:41,378 [ERROR] - 'timeStamp' key not found in the response data.
364
+ 2023-11-28 11:31:56,906 [ERROR] - Invalid data format for transactions: Max rate limit reached
365
+ 2023-11-28 11:31:56,906 [ERROR] - 'timeStamp' key not found in the response data.
366
+ 2023-11-28 11:33:17,681 [ERROR] - Invalid data format for transactions: Max rate limit reached
367
+ 2023-11-28 11:33:17,682 [ERROR] - 'timeStamp' key not found in the response data.
368
+ 2023-11-28 11:38:55,405 [INFO] - Created files:
369
+ 2023-11-28 11:38:55,405 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
370
+ 2023-11-28 11:38:55,405 [INFO] - Etherscan scraping script execution completed.
371
+ 2023-11-28 11:38:55,405 [INFO] - Function fetch_and_update_etherscan executed in 24.05 seconds
372
+ 2023-11-28 11:41:57,687 [ERROR] - Invalid data format for transactions: Max rate limit reached
373
+ 2023-11-28 11:41:57,687 [ERROR] - 'timeStamp' key not found in the response data.
374
+ 2023-11-28 11:44:09,146 [INFO] - Created files:
375
+ 2023-11-28 11:44:09,146 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
376
+ 2023-11-28 11:44:09,146 [INFO] - Etherscan scraping script execution completed.
377
+ 2023-11-28 11:44:09,146 [INFO] - Function fetch_and_update_etherscan executed in 25.95 seconds
378
+ 2023-11-28 11:57:37,072 [INFO] - Created files:
379
+ 2023-11-28 11:57:37,072 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
380
+ 2023-11-28 11:57:37,072 [INFO] - Etherscan scraping script execution completed.
381
+ 2023-11-28 11:57:37,072 [INFO] - Function fetch_and_update_etherscan executed in 21.48 seconds
382
+ 2023-11-28 11:58:41,148 [INFO] - Created files:
383
+ 2023-11-28 11:58:41,148 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
384
+ 2023-11-28 11:58:41,148 [INFO] - Etherscan scraping script execution completed.
385
+ 2023-11-28 11:58:41,148 [INFO] - Function fetch_and_update_etherscan executed in 31.03 seconds
386
+ 2023-11-28 12:06:03,296 [INFO] - Created files:
387
+ 2023-11-28 12:06:03,297 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
388
+ 2023-11-28 12:06:03,297 [INFO] - Etherscan scraping script execution completed.
389
+ 2023-11-28 12:06:03,297 [INFO] - Function fetch_and_update_etherscan executed in 22.72 seconds
390
+ 2023-11-28 12:06:46,032 [INFO] - Created files:
391
+ 2023-11-28 12:06:46,032 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
392
+ 2023-11-28 12:06:46,033 [INFO] - Etherscan scraping script execution completed.
393
+ 2023-11-28 12:06:46,033 [INFO] - Function fetch_and_update_etherscan executed in 27.85 seconds
394
+ 2023-11-28 12:08:04,502 [ERROR] - Invalid data format for transactions: Max rate limit reached
395
+ 2023-11-28 12:08:04,502 [ERROR] - 'timeStamp' key not found in the response data.
396
+ 2023-11-28 12:18:34,929 [INFO] - Created files:
397
+ 2023-11-28 12:18:34,929 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
398
+ 2023-11-28 12:18:34,929 [INFO] - Etherscan scraping script execution completed.
399
+ 2023-11-28 12:18:34,929 [INFO] - Function fetch_and_update_etherscan executed in 20.92 seconds
400
+ 2023-11-28 13:10:40,360 [ERROR] - Invalid data format for transactions: Max rate limit reached
401
+ 2023-11-28 13:10:40,361 [ERROR] - 'timeStamp' key not found in the response data.
402
+ 2023-11-28 13:12:10,042 [ERROR] - Invalid data format for transactions: Max rate limit reached
403
+ 2023-11-28 13:12:10,042 [ERROR] - 'timeStamp' key not found in the response data.
404
+ 2023-11-28 13:22:24,524 [INFO] - Created files:
405
+ 2023-11-28 13:22:24,524 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
406
+ 2023-11-28 13:22:24,524 [INFO] - Etherscan scraping script execution completed.
407
+ 2023-11-28 13:22:24,524 [INFO] - Function fetch_and_update_etherscan executed in 20.44 seconds
logs/scrapping/greed_fear_index.log CHANGED
@@ -21,3 +21,24 @@
21
  2023-11-28 01:58:46,004 [INFO] - Greed and Fear index data fetched successfully.
22
  2023-11-28 01:59:11,591 [INFO] - Greed and Fear index data fetched successfully.
23
  2023-11-28 01:59:31,101 [INFO] - Greed and Fear index data fetched successfully.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  2023-11-28 01:58:46,004 [INFO] - Greed and Fear index data fetched successfully.
22
  2023-11-28 01:59:11,591 [INFO] - Greed and Fear index data fetched successfully.
23
  2023-11-28 01:59:31,101 [INFO] - Greed and Fear index data fetched successfully.
24
+ 2023-11-28 10:33:32,146 [INFO] - Greed and Fear index data fetched successfully.
25
+ 2023-11-28 10:33:53,293 [INFO] - Greed and Fear index data fetched successfully.
26
+ 2023-11-28 10:36:53,240 [INFO] - Greed and Fear index data fetched successfully.
27
+ 2023-11-28 10:44:58,843 [INFO] - Greed and Fear index data fetched successfully.
28
+ 2023-11-28 10:47:21,495 [INFO] - Greed and Fear index data fetched successfully.
29
+ 2023-11-28 11:07:40,243 [INFO] - Greed and Fear index data fetched successfully.
30
+ 2023-11-28 11:31:55,778 [INFO] - Greed and Fear index data fetched successfully.
31
+ 2023-11-28 11:33:16,553 [INFO] - Greed and Fear index data fetched successfully.
32
+ 2023-11-28 11:38:31,948 [INFO] - Greed and Fear index data fetched successfully.
33
+ 2023-11-28 11:41:56,556 [INFO] - Greed and Fear index data fetched successfully.
34
+ 2023-11-28 11:42:08,720 [INFO] - Greed and Fear index data fetched successfully.
35
+ 2023-11-28 11:43:43,570 [INFO] - Greed and Fear index data fetched successfully.
36
+ 2023-11-28 11:57:15,928 [INFO] - Greed and Fear index data fetched successfully.
37
+ 2023-11-28 11:58:10,485 [INFO] - Greed and Fear index data fetched successfully.
38
+ 2023-11-28 12:05:40,844 [INFO] - Greed and Fear index data fetched successfully.
39
+ 2023-11-28 12:06:19,435 [INFO] - Greed and Fear index data fetched successfully.
40
+ 2023-11-28 12:08:03,445 [INFO] - Greed and Fear index data fetched successfully.
41
+ 2023-11-28 12:18:14,299 [INFO] - Greed and Fear index data fetched successfully.
42
+ 2023-11-28 13:10:39,386 [INFO] - Greed and Fear index data fetched successfully.
43
+ 2023-11-28 13:12:08,710 [INFO] - Greed and Fear index data fetched successfully.
44
+ 2023-11-28 13:22:26,672 [INFO] - Greed and Fear index data fetched successfully.
logs/streamlit/front.log CHANGED
@@ -673,3 +673,267 @@
673
  2023-11-28 01:59:32,265 [INFO] - Etherscan scraping completed
674
  2023-11-28 01:59:52,816 [INFO] - Etherscan scraping completed
675
  2023-11-28 01:59:54,340 [INFO] - CMC scraping completed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
  2023-11-28 01:59:32,265 [INFO] - Etherscan scraping completed
674
  2023-11-28 01:59:52,816 [INFO] - Etherscan scraping completed
675
  2023-11-28 01:59:54,340 [INFO] - CMC scraping completed
676
+ 2023-11-28 10:33:31,304 [INFO] - Streamlit app has started
677
+ 2023-11-28 10:33:31,944 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
678
+ 2023-11-28 10:33:32,092 [INFO] - Global metrics scraping completed
679
+ 2023-11-28 10:33:32,170 [INFO] - CMC scraping completed
680
+ 2023-11-28 10:33:32,223 [INFO] - Greed and Fear index scraping completed
681
+ 2023-11-28 10:33:32,419 [INFO] - Influencers balance scraping completed
682
+ 2023-11-28 10:33:33,368 [INFO] - Etherscan scraping completed
683
+ 2023-11-28 10:33:42,956 [INFO] - Token balances scraping completed
684
+ 2023-11-28 10:33:52,392 [INFO] - Streamlit app has started
685
+ 2023-11-28 10:33:52,595 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
686
+ 2023-11-28 10:33:53,119 [INFO] - Global metrics scraping completed
687
+ 2023-11-28 10:33:53,251 [INFO] - CMC scraping completed
688
+ 2023-11-28 10:33:53,346 [INFO] - Greed and Fear index scraping completed
689
+ 2023-11-28 10:33:53,430 [INFO] - Influencers balance scraping completed
690
+ 2023-11-28 10:33:54,322 [INFO] - Etherscan scraping completed
691
+ 2023-11-28 10:34:04,113 [INFO] - Token balances scraping completed
692
+ 2023-11-28 10:36:52,468 [INFO] - Streamlit app has started
693
+ 2023-11-28 10:36:52,686 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
694
+ 2023-11-28 10:36:53,215 [INFO] - Global metrics scraping completed
695
+ 2023-11-28 10:36:53,303 [INFO] - Greed and Fear index scraping completed
696
+ 2023-11-28 10:36:53,304 [INFO] - CMC scraping completed
697
+ 2023-11-28 10:36:53,509 [INFO] - Influencers balance scraping completed
698
+ 2023-11-28 10:37:04,672 [INFO] - Token balances scraping completed
699
+ 2023-11-28 10:37:14,173 [INFO] - Etherscan scraping completed
700
+ 2023-11-28 10:38:20,767 [INFO] - CMC scraping completed
701
+ 2023-11-28 10:38:20,928 [INFO] - Influencers balance scraping completed
702
+ 2023-11-28 10:38:41,875 [INFO] - Influencers balance scraping completed
703
+ 2023-11-28 10:38:42,009 [INFO] - CMC scraping completed
704
+ 2023-11-28 10:41:41,814 [INFO] - CMC scraping completed
705
+ 2023-11-28 10:41:42,015 [INFO] - Influencers balance scraping completed
706
+ 2023-11-28 10:43:09,865 [INFO] - CMC scraping completed
707
+ 2023-11-28 10:43:30,528 [INFO] - CMC scraping completed
708
+ 2023-11-28 10:44:57,972 [INFO] - Streamlit app has started
709
+ 2023-11-28 10:44:58,530 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
710
+ 2023-11-28 10:44:58,723 [INFO] - Global metrics scraping completed
711
+ 2023-11-28 10:44:58,900 [INFO] - CMC scraping completed
712
+ 2023-11-28 10:44:58,937 [INFO] - Greed and Fear index scraping completed
713
+ 2023-11-28 10:44:59,025 [INFO] - Influencers balance scraping completed
714
+ 2023-11-28 10:44:59,991 [INFO] - Etherscan scraping completed
715
+ 2023-11-28 10:45:08,425 [INFO] - Token balances scraping completed
716
+ 2023-11-28 10:47:20,352 [INFO] - Streamlit app has started
717
+ 2023-11-28 10:47:20,977 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
718
+ 2023-11-28 10:47:21,197 [INFO] - Global metrics scraping completed
719
+ 2023-11-28 10:47:21,523 [INFO] - CMC scraping completed
720
+ 2023-11-28 10:47:21,531 [INFO] - Influencers balance scraping completed
721
+ 2023-11-28 10:47:21,568 [INFO] - Greed and Fear index scraping completed
722
+ 2023-11-28 10:47:25,969 [INFO] - Etherscan scraping completed
723
+ 2023-11-28 10:47:30,999 [INFO] - Token balances scraping completed
724
+ 2023-11-28 10:52:10,018 [INFO] - Influencers balance scraping completed
725
+ 2023-11-28 10:52:10,094 [INFO] - CMC scraping completed
726
+ 2023-11-28 10:56:58,654 [INFO] - CMC scraping completed
727
+ 2023-11-28 11:01:47,146 [INFO] - CMC scraping completed
728
+ 2023-11-28 11:06:35,649 [INFO] - CMC scraping completed
729
+ 2023-11-28 11:07:39,400 [INFO] - Streamlit app has started
730
+ 2023-11-28 11:07:39,642 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
731
+ 2023-11-28 11:07:40,213 [INFO] - Global metrics scraping completed
732
+ 2023-11-28 11:07:40,326 [INFO] - Greed and Fear index scraping completed
733
+ 2023-11-28 11:07:40,342 [INFO] - CMC scraping completed
734
+ 2023-11-28 11:07:40,477 [INFO] - Influencers balance scraping completed
735
+ 2023-11-28 11:07:41,454 [INFO] - Etherscan scraping completed
736
+ 2023-11-28 11:07:49,803 [INFO] - Token balances scraping completed
737
+ 2023-11-28 11:09:28,933 [INFO] - Streamlit app has started
738
+ 2023-11-28 11:09:29,503 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
739
+ 2023-11-28 11:09:39,494 [INFO] - Greed and Fear index scraping completed
740
+ 2023-11-28 11:09:39,505 [INFO] - CMC scraping completed
741
+ 2023-11-28 11:09:39,512 [INFO] - Global metrics scraping completed
742
+ 2023-11-28 11:09:39,518 [INFO] - Influencers balance scraping completed
743
+ 2023-11-28 11:09:39,518 [INFO] - Token balances scraping completed
744
+ 2023-11-28 11:09:39,542 [INFO] - Etherscan scraping completed
745
+ 2023-11-28 11:10:01,250 [INFO] - Streamlit app has started
746
+ 2023-11-28 11:10:01,450 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
747
+ 2023-11-28 11:10:03,070 [INFO] - Streamlit app has started
748
+ 2023-11-28 11:10:03,256 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
749
+ 2023-11-28 11:11:36,331 [INFO] - Streamlit app has started
750
+ 2023-11-28 11:11:36,680 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
751
+ 2023-11-28 11:11:46,974 [INFO] - Greed and Fear index scraping completed
752
+ 2023-11-28 11:11:46,977 [INFO] - CMC scraping completed
753
+ 2023-11-28 11:11:46,982 [INFO] - Token balances scraping completed
754
+ 2023-11-28 11:11:46,983 [INFO] - Influencers balance scraping completed
755
+ 2023-11-28 11:11:47,009 [INFO] - Global metrics scraping completed
756
+ 2023-11-28 11:11:47,017 [INFO] - Etherscan scraping completed
757
+ 2023-11-28 11:13:32,451 [INFO] - Streamlit app has started
758
+ 2023-11-28 11:13:32,783 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
759
+ 2023-11-28 11:13:43,185 [INFO] - Influencers balance scraping completed
760
+ 2023-11-28 11:13:43,188 [INFO] - Greed and Fear index scraping completed
761
+ 2023-11-28 11:13:43,194 [INFO] - CMC scraping completed
762
+ 2023-11-28 11:13:43,195 [INFO] - Token balances scraping completed
763
+ 2023-11-28 11:13:43,216 [INFO] - Global metrics scraping completed
764
+ 2023-11-28 11:13:43,226 [INFO] - Etherscan scraping completed
765
+ 2023-11-28 11:13:43,690 [INFO] - Streamlit app has started
766
+ 2023-11-28 11:13:43,879 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
767
+ 2023-11-28 11:13:45,536 [INFO] - Streamlit app has started
768
+ 2023-11-28 11:13:45,748 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
769
+ 2023-11-28 11:14:37,809 [INFO] - CMC scraping completed
770
+ 2023-11-28 11:14:37,815 [INFO] - Influencers balance scraping completed
771
+ 2023-11-28 11:16:35,607 [INFO] - CMC scraping completed
772
+ 2023-11-28 11:16:35,810 [INFO] - Influencers balance scraping completed
773
+ 2023-11-28 11:18:31,768 [INFO] - CMC scraping completed
774
+ 2023-11-28 11:18:31,967 [INFO] - Influencers balance scraping completed
775
+ 2023-11-28 11:19:26,289 [INFO] - CMC scraping completed
776
+ 2023-11-28 11:21:24,099 [INFO] - CMC scraping completed
777
+ 2023-11-28 11:23:20,427 [INFO] - CMC scraping completed
778
+ 2023-11-28 11:24:14,863 [INFO] - CMC scraping completed
779
+ 2023-11-28 11:26:12,605 [INFO] - CMC scraping completed
780
+ 2023-11-28 11:28:08,923 [INFO] - CMC scraping completed
781
+ 2023-11-28 11:29:03,434 [INFO] - CMC scraping completed
782
+ 2023-11-28 11:31:01,135 [INFO] - CMC scraping completed
783
+ 2023-11-28 11:31:54,938 [INFO] - Streamlit app has started
784
+ 2023-11-28 11:31:55,541 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
785
+ 2023-11-28 11:31:55,713 [INFO] - Global metrics scraping completed
786
+ 2023-11-28 11:31:55,859 [INFO] - CMC scraping completed
787
+ 2023-11-28 11:31:55,877 [INFO] - Greed and Fear index scraping completed
788
+ 2023-11-28 11:31:56,011 [INFO] - Influencers balance scraping completed
789
+ 2023-11-28 11:31:56,994 [INFO] - Etherscan scraping completed
790
+ 2023-11-28 11:32:05,297 [INFO] - Token balances scraping completed
791
+ 2023-11-28 11:33:15,762 [INFO] - Streamlit app has started
792
+ 2023-11-28 11:33:16,303 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
793
+ 2023-11-28 11:33:16,318 [WARNING] - Wallet interactions file not found.
794
+ 2023-11-28 11:33:16,492 [INFO] - Global metrics scraping completed
795
+ 2023-11-28 11:33:16,571 [INFO] - CMC scraping completed
796
+ 2023-11-28 11:33:16,616 [INFO] - Greed and Fear index scraping completed
797
+ 2023-11-28 11:33:16,782 [INFO] - Influencers balance scraping completed
798
+ 2023-11-28 11:33:17,726 [INFO] - Etherscan scraping completed
799
+ 2023-11-28 11:33:26,028 [INFO] - Token balances scraping completed
800
+ 2023-11-28 11:38:30,855 [INFO] - Streamlit app has started
801
+ 2023-11-28 11:38:31,485 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
802
+ 2023-11-28 11:38:31,506 [WARNING] - Wallet interactions file not found.
803
+ 2023-11-28 11:38:31,626 [INFO] - Global metrics scraping completed
804
+ 2023-11-28 11:38:31,756 [INFO] - CMC scraping completed
805
+ 2023-11-28 11:38:31,956 [INFO] - Influencers balance scraping completed
806
+ 2023-11-28 11:38:32,039 [INFO] - Greed and Fear index scraping completed
807
+ 2023-11-28 11:38:45,284 [INFO] - Token balances scraping completed
808
+ 2023-11-28 11:38:55,442 [INFO] - Etherscan scraping completed
809
+ 2023-11-28 11:41:55,758 [INFO] - Streamlit app has started
810
+ 2023-11-28 11:41:56,042 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
811
+ 2023-11-28 11:41:56,500 [INFO] - Global metrics scraping completed
812
+ 2023-11-28 11:41:56,585 [INFO] - CMC scraping completed
813
+ 2023-11-28 11:41:56,619 [INFO] - Greed and Fear index scraping completed
814
+ 2023-11-28 11:41:56,844 [INFO] - Influencers balance scraping completed
815
+ 2023-11-28 11:41:57,729 [INFO] - Etherscan scraping completed
816
+ 2023-11-28 11:42:04,997 [INFO] - Token balances scraping completed
817
+ 2023-11-28 11:42:07,900 [INFO] - Streamlit app has started
818
+ 2023-11-28 11:42:08,497 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
819
+ 2023-11-28 11:42:08,646 [INFO] - Global metrics scraping completed
820
+ 2023-11-28 11:42:08,703 [INFO] - CMC scraping completed
821
+ 2023-11-28 11:42:08,778 [INFO] - Greed and Fear index scraping completed
822
+ 2023-11-28 11:42:08,929 [INFO] - Influencers balance scraping completed
823
+ 2023-11-28 11:42:11,373 [INFO] - Streamlit app has started
824
+ 2023-11-28 11:42:11,538 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
825
+ 2023-11-28 11:42:14,771 [INFO] - Token balances scraping completed
826
+ 2023-11-28 11:42:14,775 [INFO] - Etherscan scraping completed
827
+ 2023-11-28 11:43:42,678 [INFO] - Streamlit app has started
828
+ 2023-11-28 11:43:43,257 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
829
+ 2023-11-28 11:43:43,449 [INFO] - Global metrics scraping completed
830
+ 2023-11-28 11:43:43,570 [INFO] - CMC scraping completed
831
+ 2023-11-28 11:43:43,659 [INFO] - Greed and Fear index scraping completed
832
+ 2023-11-28 11:43:43,768 [INFO] - Influencers balance scraping completed
833
+ 2023-11-28 11:43:57,879 [INFO] - Token balances scraping completed
834
+ 2023-11-28 11:44:09,187 [INFO] - Etherscan scraping completed
835
+ 2023-11-28 11:48:32,077 [INFO] - CMC scraping completed
836
+ 2023-11-28 11:48:32,201 [INFO] - Influencers balance scraping completed
837
+ 2023-11-28 11:53:20,650 [INFO] - CMC scraping completed
838
+ 2023-11-28 11:57:15,074 [INFO] - Streamlit app has started
839
+ 2023-11-28 11:57:15,658 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
840
+ 2023-11-28 11:57:15,800 [INFO] - Global metrics scraping completed
841
+ 2023-11-28 11:57:15,990 [INFO] - CMC scraping completed
842
+ 2023-11-28 11:57:16,016 [INFO] - Greed and Fear index scraping completed
843
+ 2023-11-28 11:57:16,111 [INFO] - Influencers balance scraping completed
844
+ 2023-11-28 11:57:33,870 [INFO] - Token balances scraping completed
845
+ 2023-11-28 11:57:37,125 [INFO] - Etherscan scraping completed
846
+ 2023-11-28 11:58:09,595 [INFO] - Streamlit app has started
847
+ 2023-11-28 11:58:10,203 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
848
+ 2023-11-28 11:58:10,368 [INFO] - Global metrics scraping completed
849
+ 2023-11-28 11:58:10,480 [INFO] - CMC scraping completed
850
+ 2023-11-28 11:58:10,560 [INFO] - Greed and Fear index scraping completed
851
+ 2023-11-28 11:58:10,701 [INFO] - Influencers balance scraping completed
852
+ 2023-11-28 11:58:26,071 [INFO] - Token balances scraping completed
853
+ 2023-11-28 11:58:41,198 [INFO] - Etherscan scraping completed
854
+ 2023-11-28 12:05:40,063 [INFO] - Streamlit app has started
855
+ 2023-11-28 12:05:40,618 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
856
+ 2023-11-28 12:05:40,781 [INFO] - Global metrics scraping completed
857
+ 2023-11-28 12:05:40,923 [INFO] - Greed and Fear index scraping completed
858
+ 2023-11-28 12:05:41,107 [INFO] - Influencers balance scraping completed
859
+ 2023-11-28 12:05:41,152 [INFO] - CMC scraping completed
860
+ 2023-11-28 12:05:50,285 [INFO] - Token balances scraping completed
861
+ 2023-11-28 12:06:03,333 [INFO] - Etherscan scraping completed
862
+ 2023-11-28 12:06:17,658 [INFO] - Streamlit app has started
863
+ 2023-11-28 12:06:18,235 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
864
+ 2023-11-28 12:06:18,587 [INFO] - CMC scraping completed
865
+ 2023-11-28 12:06:18,622 [INFO] - Global metrics scraping completed
866
+ 2023-11-28 12:06:18,773 [INFO] - Influencers balance scraping completed
867
+ 2023-11-28 12:06:19,470 [INFO] - Greed and Fear index scraping completed
868
+ 2023-11-28 12:06:28,837 [INFO] - Token balances scraping completed
869
+ 2023-11-28 12:06:46,069 [INFO] - Etherscan scraping completed
870
+ 2023-11-28 12:08:02,516 [INFO] - Streamlit app has started
871
+ 2023-11-28 12:08:02,791 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
872
+ 2023-11-28 12:08:03,294 [INFO] - Global metrics scraping completed
873
+ 2023-11-28 12:08:03,507 [INFO] - CMC scraping completed
874
+ 2023-11-28 12:08:03,549 [INFO] - Greed and Fear index scraping completed
875
+ 2023-11-28 12:08:03,614 [INFO] - Influencers balance scraping completed
876
+ 2023-11-28 12:08:04,554 [INFO] - Etherscan scraping completed
877
+ 2023-11-28 12:08:12,880 [INFO] - Token balances scraping completed
878
+ 2023-11-28 12:11:07,154 [INFO] - CMC scraping completed
879
+ 2023-11-28 12:11:07,427 [INFO] - Influencers balance scraping completed
880
+ 2023-11-28 12:12:52,039 [INFO] - Influencers balance scraping completed
881
+ 2023-11-28 12:12:52,039 [INFO] - CMC scraping completed
882
+ 2023-11-28 12:15:55,641 [INFO] - CMC scraping completed
883
+ 2023-11-28 12:17:40,543 [INFO] - CMC scraping completed
884
+ 2023-11-28 12:18:13,441 [INFO] - Streamlit app has started
885
+ 2023-11-28 12:18:14,059 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
886
+ 2023-11-28 12:18:14,249 [INFO] - Global metrics scraping completed
887
+ 2023-11-28 12:18:14,352 [INFO] - CMC scraping completed
888
+ 2023-11-28 12:18:14,396 [INFO] - Greed and Fear index scraping completed
889
+ 2023-11-28 12:18:14,527 [INFO] - Influencers balance scraping completed
890
+ 2023-11-28 12:18:25,177 [INFO] - Token balances scraping completed
891
+ 2023-11-28 12:18:34,978 [INFO] - Etherscan scraping completed
892
+ 2023-11-28 12:23:02,938 [INFO] - CMC scraping completed
893
+ 2023-11-28 12:23:03,024 [INFO] - Influencers balance scraping completed
894
+ 2023-11-28 13:10:38,358 [INFO] - Streamlit app has started
895
+ 2023-11-28 13:10:39,038 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
896
+ 2023-11-28 13:10:39,179 [INFO] - Global metrics scraping completed
897
+ 2023-11-28 13:10:39,286 [INFO] - CMC scraping completed
898
+ 2023-11-28 13:10:39,461 [INFO] - Greed and Fear index scraping completed
899
+ 2023-11-28 13:10:39,471 [INFO] - Influencers balance scraping completed
900
+ 2023-11-28 13:10:40,423 [INFO] - Etherscan scraping completed
901
+ 2023-11-28 13:10:49,824 [INFO] - Token balances scraping completed
902
+ 2023-11-28 13:12:07,786 [INFO] - Streamlit app has started
903
+ 2023-11-28 13:12:08,380 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
904
+ 2023-11-28 13:12:08,544 [INFO] - Global metrics scraping completed
905
+ 2023-11-28 13:12:08,770 [INFO] - Greed and Fear index scraping completed
906
+ 2023-11-28 13:12:08,867 [INFO] - CMC scraping completed
907
+ 2023-11-28 13:12:09,173 [INFO] - Influencers balance scraping completed
908
+ 2023-11-28 13:12:10,086 [INFO] - Etherscan scraping completed
909
+ 2023-11-28 13:12:19,423 [INFO] - Token balances scraping completed
910
+ 2023-11-28 13:16:57,314 [INFO] - Influencers balance scraping completed
911
+ 2023-11-28 13:16:57,399 [INFO] - CMC scraping completed
912
+ 2023-11-28 13:19:41,896 [INFO] - Streamlit app has started
913
+ 2023-11-28 13:19:42,325 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
914
+ 2023-11-28 13:19:49,733 [INFO] - Streamlit app has started
915
+ 2023-11-28 13:19:49,920 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
916
+ 2023-11-28 13:19:52,110 [INFO] - Streamlit app has started
917
+ 2023-11-28 13:19:52,289 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
918
+ 2023-11-28 13:20:35,829 [INFO] - Streamlit app has started
919
+ 2023-11-28 13:20:36,023 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
920
+ 2023-11-28 13:21:04,545 [INFO] - Streamlit app has started
921
+ 2023-11-28 13:21:04,734 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
922
+ 2023-11-28 13:21:13,159 [INFO] - Streamlit app has started
923
+ 2023-11-28 13:21:13,354 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
924
+ 2023-11-28 13:21:14,994 [INFO] - Streamlit app has started
925
+ 2023-11-28 13:21:15,190 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
926
+ 2023-11-28 13:21:17,132 [INFO] - Streamlit app has started
927
+ 2023-11-28 13:21:17,328 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
928
+ 2023-11-28 13:21:19,109 [INFO] - Streamlit app has started
929
+ 2023-11-28 13:21:19,294 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
930
+ 2023-11-28 13:21:21,201 [INFO] - Streamlit app has started
931
+ 2023-11-28 13:21:21,413 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
932
+ 2023-11-28 13:21:28,530 [INFO] - Streamlit app has started
933
+ 2023-11-28 13:21:28,720 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
934
+ 2023-11-28 13:21:32,344 [INFO] - Streamlit app has started
935
+ 2023-11-28 13:21:32,537 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
936
+ 2023-11-28 13:21:58,369 [INFO] - Streamlit app has started
937
+ 2023-11-28 13:21:58,557 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
938
+ 2023-11-28 13:22:03,724 [INFO] - Streamlit app has started
939
+ 2023-11-28 13:22:36,893 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
output/all_influencers_interactions.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:56fa4ff0ebacf5eca419e06beb2a4c09444b4bc1285f9503271e4e157693514a
3
+ size 6455502
output/cmc_data_v1_cryptocurrency_listings_latest_100.json CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:49f394b714b63bcb568bc1f85ea5a8fe308067977994fc77a11d7401f613b2ea
3
- size 119061
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fcb005b97a284701233e7b75b95cb1dd6edcc4d21608b0a77f60a708e4e03557
3
+ size 118855
output/global_metrics.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:56d354bb20eac786e584d13e27b0648dbfff97321da9cfea34ab2b5a937e956a
3
- size 2058
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f2ea68072d857f8df4fa012a3b3812958b6b429e244a7bb676ea3c8c3fd16fb8
3
+ size 2062
output/greed_fear_index.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4eee12b593c936615d9b103bf596fbcb999542a4a68987aff4100b9d5396cf15
3
  size 363
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9dbd09283b7fecc48bc63ddae9f75a5ef7870736b506d1c9a98b90e1774fbb60
3
  size 363
output/influencers_balances.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:0a132619b2c97f10e5a84b873ea52f108b2a9e61d1f18f8d2aeaf4140a22b7bc
3
- size 247
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:58780b31635e55bb240338631191ea8b067eab050a4c807a537d427079369202
3
+ size 186
output/influencers_token_balances.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:11885bd488cef73d210438ea5e0d733aa02aac1004e72657ea7fda0b08511cf5
3
+ size 92
output/interactions_alexBecker.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3965f63ee83a15c803c501606a8406f2302e404728e60011c7851474fb6fb533
3
+ size 3965237
output/interactions_elliotrades.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eab057a6c694ff9771c3e665a384d30ca8181c21adb8aea8c384b04bc2c51356
3
+ size 5527711
output/interactions_jrny.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8228ad2cab966159a31e46eba2003847b59e83cfdf943e33198f185fab27cf97
3
+ size 832545
output/top_100_update.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c00ca112a17aa4596689a06be0226051c6ef155402a24d5f61d8b4562b3a1d8c
3
- size 1325534
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:acce0c2d2784bfaa236f703cc90d437e4ee74b317ed09b101284a3a444d01827
3
+ size 1967500
output/transactions_APE.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:047ff00b9a1610e53ccf954fddcb4dff40cf5805f98090465f82072150590d1c
3
- size 3491358
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9342bac98f54aa2f8cd068e79138987b4f6973978458564e8eec9cc39b36ea41
3
+ size 3761017
output/transactions_AXIE.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c973cac0473cbbe02c7bdba3704a97a5819fb130118d9cd99b8b1667552b8a60
3
- size 1646172
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:929bfd9aa07adaead0c1823711e6835df4708c1a3a397d484e029eb796b46a58
3
+ size 1885537
output/transactions_COPI.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca886705a085bd9b737a8d97efdcaa3366c48b0dccd95a3aefc95a8a04009edb
3
+ size 65583
output/transactions_GALA.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b52b4143f26394c83aafdce92babe5a91d78e5f47ab824dfbe1e5428caa09be2
3
- size 4222917
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b6efe06c2df1429d02f9f774a74e31002991a378d1f5eac272ab22f147e30869
3
+ size 4725457
output/transactions_MANA.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:da79712ca9bbe25335e2b9c4ce28b9aa551a0a84ff013aa95b8dd22ec3f0bc12
3
- size 2254698
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f4b2e20bb735de1bb97298c715bee0ccffd5b6f593df6b98334a1fb30506a5e3
3
+ size 2398224
output/transactions_PET.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1ffde90e51dd3bedbe01ab04e38ea840fd7d9c01094c6f0b6d4ee3779ed3e09c
3
- size 885
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82630c63358642367e62796d2323691c7ca82a115cbeabc043774851d9f8644e
3
+ size 1249
output/transactions_WEAOPON.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:beac438541c99c972ae4322faae5e06a27171e15bb73436849aeed530e80b4da
3
- size 6082
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:947b350533c3ce072db8988341ce5e1d6ae30c42c99f1da14492b4812ae4c2a4
3
+ size 6453
requirements.txt CHANGED
@@ -10,4 +10,7 @@ streamlit
10
  requests
11
  plotly
12
  nbformat
13
- schedule
 
 
 
 
10
  requests
11
  plotly
12
  nbformat
13
+ schedule
14
+ networkx
15
+ scipy
16
+ matplotlib
ressources/dict_influencers_addr.json CHANGED
@@ -1,6 +1,5 @@
1
  {
2
  "alexBecker": "0x4d224452801aced8b2f0aebe155379bb5d594381",
3
  "elliotrades": "0xc02f318365582557a482eb5d1834dfd7af4a3f59",
4
- "jrny": "0x08c1ae7e46d4a13b766566033b5c47c735e19f6f",
5
- "momo": "0x17770D4A8C0d068be7eB5b7AF453f9E176E52464"
6
  }
 
1
  {
2
  "alexBecker": "0x4d224452801aced8b2f0aebe155379bb5d594381",
3
  "elliotrades": "0xc02f318365582557a482eb5d1834dfd7af4a3f59",
4
+ "jrny": "0x08c1ae7e46d4a13b766566033b5c47c735e19f6f"
 
5
  }
ressources/dict_tokens_addr.json CHANGED
@@ -3,5 +3,6 @@
3
  "GALA":"0xd1d2Eb1B1e90B638588728b4130137D262C87cae",
4
  "MANA":"0x0f5d2fb29fb7d3cfee444a200298f468908cc942",
5
  "PET":"0xb870679a7fa65b924026f496de7f27c1dd0e5c5f",
6
- "WEAOPON":"0x0b8057c3cc676c329c25c1d0cd27776efa73762d"
 
7
  }
 
3
  "GALA":"0xd1d2Eb1B1e90B638588728b4130137D262C87cae",
4
  "MANA":"0x0f5d2fb29fb7d3cfee444a200298f468908cc942",
5
  "PET":"0xb870679a7fa65b924026f496de7f27c1dd0e5c5f",
6
+ "WEAOPON":"0x0b8057c3cc676c329c25c1d0cd27776efa73762d",
7
+ "COPI":"0x42Baf1f659D765C65ADE5BB7E08eb2C680360d9d"
8
  }
utils/extract_tokens_balances.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ import requests
4
+ import pandas as pd
5
+ from dotenv import load_dotenv
6
+
7
+ # Load environment variables
8
+ load_dotenv()
9
+ ETHERSCAN_API_KEY = os.getenv("API_KEY_ETHERSCAN")
10
+ TOKENS_TO_WATCH = "ressources/dict_tokens_addr.json" # Path to the file with tokens to watch
11
+ INFLUENCERS_FILE = "ressources/dict_influencers_addr.json" # Path to the file with influencers' addresses
12
+
13
+ def fetch_token_balance(address, token_contract):
14
+ url = f"https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress={token_contract}&address={address}&tag=latest&apikey={ETHERSCAN_API_KEY}"
15
+ response = requests.get(url)
16
+ if response.status_code == 200:
17
+ data = response.json()
18
+ if data["status"] == "1":
19
+ balance = int(data["result"])
20
+ return balance
21
+ else:
22
+ print(f"Error fetching token balance: {data.get('message')}")
23
+ else:
24
+ print(f"Error: HTTP {response.status_code}")
25
+ return 0
26
+
27
+ def main():
28
+ # Load tokens and influencers
29
+ with open(TOKENS_TO_WATCH, "r") as file:
30
+ tokens_to_watch = json.load(file)
31
+ with open(INFLUENCERS_FILE, "r") as file:
32
+ influencers = json.load(file)
33
+
34
+ balances = []
35
+ for name, address in influencers.items():
36
+ for token_name, token_contract in tokens_to_watch.items():
37
+ balance = fetch_token_balance(address, token_contract)
38
+ if balance > 0: # Optionally check if balance is above a certain threshold
39
+ balances.append({
40
+ "Influencer": name,
41
+ "Token": token_name,
42
+ "Balance": balance / (10 ** 18) # Convert from Wei
43
+ })
44
+
45
+ # Save to CSV
46
+ df = pd.DataFrame(balances)
47
+ df.to_csv("output/influencers_token_balances.csv", index=False)
48
+
49
+ if __name__ == "__main__":
50
+ main()
utils/extract_wallet_interactions.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import pandas as pd
3
+ import json
4
+ import os
5
+ from dotenv import load_dotenv
6
+
7
+ # Load environment variables
8
+ load_dotenv()
9
+ API_KEY = os.getenv('API_KEY_ETHERSCAN')
10
+ URL_ETHERSCAN = os.getenv('URL_ETHERSCAN')
11
+
12
+ def get_token_transactions(address, action):
13
+ params = {
14
+ 'module': 'account',
15
+ 'action': action, # tokentx for ERC20, tokennfttx for ERC721, token1155tx for ERC1155
16
+ 'address': address,
17
+ 'startblock': 0,
18
+ 'endblock': 99999999,
19
+ 'sort': 'asc',
20
+ 'apikey': API_KEY
21
+ }
22
+ response = requests.get(URL_ETHERSCAN, params=params)
23
+ if response.status_code == 200:
24
+ data = response.json()
25
+ return data['result']
26
+ else:
27
+ print(f"Error fetching transactions for address {address} with action {action}")
28
+ return []
29
+
30
+ def combine_token_transactions(address):
31
+ erc20_transactions = get_token_transactions(address, 'tokentx')
32
+ erc721_transactions = get_token_transactions(address, 'tokennfttx')
33
+ erc1155_transactions = get_token_transactions(address, 'token1155tx')
34
+
35
+ combined_transactions = erc20_transactions + erc721_transactions + erc1155_transactions
36
+ return combined_transactions
37
+
38
+ def save_transactions_to_csv(transactions, influencer_name):
39
+ df = pd.DataFrame(transactions)
40
+ df.to_csv(f"output/interactions_{influencer_name}.csv", index=False)
41
+
42
+ if __name__ == "__main__":
43
+ # Load influencers
44
+ with open("ressources/dict_influencers_addr.json", "r") as file:
45
+ influencers = json.load(file)
46
+
47
+ # Extract and save interactions for all influencers
48
+ for name, address in influencers.items():
49
+ transactions = combine_token_transactions(address)
50
+ save_transactions_to_csv(transactions, name)