diff --git a/mev_inspect/crud/miner_payments.py b/mev_inspect/crud/miner_payments.py index e82bf96..afef55d 100644 --- a/mev_inspect/crud/miner_payments.py +++ b/mev_inspect/crud/miner_payments.py @@ -1,5 +1,7 @@ import json -from typing import List +from typing import List, Optional + +from sqlalchemy.sql.expression import func from mev_inspect.models.miner_payments import MinerPaymentModel from mev_inspect.schemas.miner_payments import MinerPayment @@ -29,3 +31,11 @@ def write_miner_payments( db_session.bulk_save_objects(models) db_session.commit() + + +def get_max_miner_payment_block(db_session) -> Optional[int]: + results = db_session.query(func.max(MinerPaymentModel.block_number)).one_or_none() + if results is None: + return None + else: + return int(results[0]) diff --git a/run.py b/run.py index 7a93d5e..01ba2d3 100644 --- a/run.py +++ b/run.py @@ -6,6 +6,8 @@ import time from web3 import Web3 from mev_inspect.block import get_latest_block_number +from mev_inspect.crud.miner_payments import get_max_miner_payment_block +from mev_inspect.db import get_session from mev_inspect.provider import get_base_provider @@ -33,7 +35,7 @@ class GracefulKiller: self.kill_now = True -if __name__ == "__main__": +def run(): rpc = os.getenv("RPC_URL") if rpc is None: raise RuntimeError("Missing environment variable RPC_URL") @@ -41,12 +43,21 @@ if __name__ == "__main__": logger.info("Starting...") killer = GracefulKiller() + + db_session = get_session() base_provider = get_base_provider(rpc) w3 = Web3(base_provider) while not killer.kill_now: latest_block_number = get_latest_block_number(w3) + last_written_block = get_max_miner_payment_block(db_session) + logger.info(f"Latest block: {latest_block_number}") + logger.info(f"Last written block: {last_written_block}") time.sleep(5) logger.info("Stopping...") + + +if __name__ == "__main__": + run()