mev-inspect-py/mev_inspect/crud/latest_block_update.py
2021-11-05 16:57:04 -04:00

26 lines
809 B
Python

from typing import Optional
async def find_latest_block_update(db_session) -> Optional[int]:
result = await db_session.execute(
"SELECT block_number FROM latest_block_update LIMIT 1"
).one_or_none()
if result is None:
return None
else:
return int(result[0])
async def update_latest_block(db_session, block_number) -> None:
await 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},
)