mev-inspect-py/mev_inspect/crud/latest_block_update.py
2023-01-05 11:30:08 +00:00

30 lines
980 B
Python

from typing import Optional
def find_latest_block_update(db_session) -> Optional[int]:
result1 = db_session.execute(
"SELECT block_number FROM swaps order by block_number desc LIMIT 1"
).one_or_none()
result2 = db_session.execute(
"SELECT block_number FROM liquidations order by block_number desc LIMIT 1"
).one_or_none()
if result1 is None or result2 is None:
return None
else:
return max(int(result1[0]), int(result2[0]))
def update_latest_block(db_session, block_number) -> None:
db_session.execute(
"""
UPDATE latest_block_update
SET block_number = :block_number, updated_at = current_timestamp;
INSERT INTO latest_block_update
(block_number, updated_at)
SELECT :block_number, current_timestamp
WHERE NOT EXISTS (SELECT 1 FROM latest_block_update);
""",
params={"block_number": block_number},
)