Use last written miner payment block as max written block
This commit is contained in:
parent
040e08912a
commit
f089dfe709
@ -1,5 +1,7 @@
|
|||||||
import json
|
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.models.miner_payments import MinerPaymentModel
|
||||||
from mev_inspect.schemas.miner_payments import MinerPayment
|
from mev_inspect.schemas.miner_payments import MinerPayment
|
||||||
@ -29,3 +31,11 @@ def write_miner_payments(
|
|||||||
|
|
||||||
db_session.bulk_save_objects(models)
|
db_session.bulk_save_objects(models)
|
||||||
db_session.commit()
|
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])
|
||||||
|
13
run.py
13
run.py
@ -6,6 +6,8 @@ import time
|
|||||||
from web3 import Web3
|
from web3 import Web3
|
||||||
|
|
||||||
from mev_inspect.block import get_latest_block_number
|
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
|
from mev_inspect.provider import get_base_provider
|
||||||
|
|
||||||
|
|
||||||
@ -33,7 +35,7 @@ class GracefulKiller:
|
|||||||
self.kill_now = True
|
self.kill_now = True
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def run():
|
||||||
rpc = os.getenv("RPC_URL")
|
rpc = os.getenv("RPC_URL")
|
||||||
if rpc is None:
|
if rpc is None:
|
||||||
raise RuntimeError("Missing environment variable RPC_URL")
|
raise RuntimeError("Missing environment variable RPC_URL")
|
||||||
@ -41,12 +43,21 @@ if __name__ == "__main__":
|
|||||||
logger.info("Starting...")
|
logger.info("Starting...")
|
||||||
|
|
||||||
killer = GracefulKiller()
|
killer = GracefulKiller()
|
||||||
|
|
||||||
|
db_session = get_session()
|
||||||
base_provider = get_base_provider(rpc)
|
base_provider = get_base_provider(rpc)
|
||||||
w3 = Web3(base_provider)
|
w3 = Web3(base_provider)
|
||||||
|
|
||||||
while not killer.kill_now:
|
while not killer.kill_now:
|
||||||
latest_block_number = get_latest_block_number(w3)
|
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"Latest block: {latest_block_number}")
|
||||||
|
logger.info(f"Last written block: {last_written_block}")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
|
|
||||||
logger.info("Stopping...")
|
logger.info("Stopping...")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
run()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user