Merge pull request #43 from flashbots/on-duplicate-update-classified-traces
Replace existing traces when inspecting a block
This commit is contained in:
commit
f903fff3c9
@ -0,0 +1,24 @@
|
||||
"""Add index for classified_traces.block_number
|
||||
|
||||
Revision ID: c5da44eb072c
|
||||
Revises: 0660432b9840
|
||||
Create Date: 2021-07-30 17:37:27.335475
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'c5da44eb072c'
|
||||
down_revision = '0660432b9840'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_index('i_block_number', 'classified_traces', ['block_number'])
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_index('i_block_number', 'classified_traces')
|
@ -5,6 +5,17 @@ from mev_inspect.models.classified_traces import ClassifiedTraceModel
|
||||
from mev_inspect.schemas.classified_traces import ClassifiedTrace
|
||||
|
||||
|
||||
def delete_classified_traces_for_block(
|
||||
db_session, block_number: int,
|
||||
) -> None:
|
||||
(db_session.query(ClassifiedTraceModel)
|
||||
.filter(ClassifiedTraceModel.block_number == block_number)
|
||||
.delete()
|
||||
)
|
||||
|
||||
db_session.commit()
|
||||
|
||||
|
||||
def write_classified_traces(
|
||||
db_session,
|
||||
classified_traces: List[ClassifiedTrace],
|
||||
|
@ -4,7 +4,10 @@ import click
|
||||
from web3 import Web3
|
||||
|
||||
from mev_inspect import block
|
||||
from mev_inspect.crud.classified_traces import write_classified_traces
|
||||
from mev_inspect.crud.classified_traces import (
|
||||
delete_classified_traces_for_block,
|
||||
write_classified_traces,
|
||||
)
|
||||
from mev_inspect.db import get_session
|
||||
from mev_inspect.classifier_specs import CLASSIFIER_SPECS
|
||||
from mev_inspect.trace_classifier import TraceClassifier
|
||||
@ -32,6 +35,7 @@ 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()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user