Luca G.F 24ea73a0b2
feat: add retries for jsonrpc requests (#40)
* 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>
2023-01-24 17:48:59 -08:00

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)