* feat: add jsonrpc retries for logs extraction Signed-off-by: Luca Georges Francois <luca@quartz.technology> * feat: add jsonrpc retries for analysis Signed-off-by: Luca Georges Francois <luca@quartz.technology> Signed-off-by: Luca Georges Francois <luca@quartz.technology>
29 lines
804 B
Python
29 lines
804 B
Python
import datetime
|
|
from time import sleep
|
|
|
|
import pandas as pd
|
|
from profit_analysis.column_names import BLOCK_KEY, TIMESTAMP_KEY
|
|
|
|
|
|
def add_block_timestamp(w3, profit_by_block):
|
|
block_timestamp = pd.DataFrame(
|
|
profit_by_block[BLOCK_KEY].unique(), columns=[BLOCK_KEY]
|
|
)
|
|
block_timestamp[TIMESTAMP_KEY] = block_timestamp[BLOCK_KEY].apply(
|
|
lambda x: get_block_timestamp(w3, x)
|
|
)
|
|
return profit_by_block.merge(block_timestamp, on=BLOCK_KEY)
|
|
|
|
|
|
def get_block_timestamp(w3, block):
|
|
while True:
|
|
try:
|
|
block_info = w3.eth.get_block(int(block))
|
|
ts = block_info[TIMESTAMP_KEY]
|
|
dt = datetime.datetime.fromtimestamp(ts)
|
|
|
|
return dt
|
|
except Exception as e:
|
|
print(f"Error, retrying {e}")
|
|
sleep(0.05)
|