From 381c04f3cc959554a70cedaf92180710e54ff888 Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Thu, 5 Aug 2021 17:45:08 -0400 Subject: [PATCH] Write swaps to the DB. Replace existing ones --- mev_inspect/crud/swaps.py | 28 ++++++++++++++++++++++++++++ scripts/inspect_block.py | 8 +++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 mev_inspect/crud/swaps.py diff --git a/mev_inspect/crud/swaps.py b/mev_inspect/crud/swaps.py new file mode 100644 index 0000000..4c51cd1 --- /dev/null +++ b/mev_inspect/crud/swaps.py @@ -0,0 +1,28 @@ +import json +from typing import List + +from mev_inspect.models.swaps import SwapModel +from mev_inspect.schemas.swaps import Swap + + +def delete_swaps_for_block( + db_session, + block_number: int, +) -> None: + ( + db_session.query(SwapModel) + .filter(SwapModel.block_number == block_number) + .delete() + ) + + db_session.commit() + + +def write_swaps( + db_session, + swaps: List[Swap], +) -> None: + models = [SwapModel(**json.loads(swap.json())) for swap in swaps] + + db_session.bulk_save_objects(models) + db_session.commit() diff --git a/scripts/inspect_block.py b/scripts/inspect_block.py index 278b06a..0929c59 100644 --- a/scripts/inspect_block.py +++ b/scripts/inspect_block.py @@ -8,6 +8,7 @@ from mev_inspect.crud.classified_traces import ( delete_classified_traces_for_block, write_classified_traces, ) +from mev_inspect.crud.swaps import delete_swaps_for_block, write_swaps from mev_inspect.db import get_session from mev_inspect.classifier_specs import CLASSIFIER_SPECS from mev_inspect.trace_classifier import TraceClassifier @@ -37,13 +38,18 @@ def inspect_block(block_number: int, rpc: str): print(f"Returned {len(classified_traces)} classified traces") db_session = get_session() + delete_classified_traces_for_block(db_session, block_number) write_classified_traces(db_session, classified_traces) - db_session.close() swaps = get_swaps(classified_traces) print(f"Found {len(swaps)} swaps") + delete_swaps_for_block(db_session, block_number) + write_swaps(db_session, swaps) + + db_session.close() + arbitrages = get_arbitrages(swaps) print(f"Found {len(arbitrages)} arbitrages")