Single block export function

This commit is contained in:
Gui Heise 2022-02-11 16:39:50 -05:00
parent debcb8731a
commit 9dbe68b284
2 changed files with 8 additions and 12 deletions

6
cli.py
View File

@ -13,7 +13,7 @@ from mev_inspect.inspector import MEVInspector
from mev_inspect.prices import fetch_prices, fetch_prices_range from mev_inspect.prices import fetch_prices, fetch_prices_range
from mev_inspect.queue.broker import connect_broker from mev_inspect.queue.broker import connect_broker
from mev_inspect.queue.tasks import inspect_many_blocks_task from mev_inspect.queue.tasks import inspect_many_blocks_task
from mev_inspect.s3_export import export_block_range from mev_inspect.s3_export import export_block
RPC_URL_ENV = "RPC_URL" RPC_URL_ENV = "RPC_URL"
@ -136,9 +136,9 @@ def fetch_all_prices():
@cli.command() @cli.command()
@click.argument("after_block_number", type=int) @click.argument("after_block_number", type=int)
@click.argument("before_block_number", type=int) @click.argument("before_block_number", type=int)
def s3_export(after_block_number: int, before_block_number: int): def s3_export(block_number: int):
inspect_db_session = get_inspect_session() inspect_db_session = get_inspect_session()
export_block_range(inspect_db_session, after_block_number, before_block_number) export_block(inspect_db_session, block_number)
@cli.command() @cli.command()

View File

@ -16,25 +16,21 @@ EXPORT_AWS_SECRET_ACCESS_KEY_ENV = "EXPORT_AWS_SECRET_ACCESS_KEY"
MEV_SUMMARY_EXPORT_QUERY = """ MEV_SUMMARY_EXPORT_QUERY = """
SELECT to_json(mev_summary) SELECT to_json(mev_summary)
FROM mev_summary FROM mev_summary
WHERE WHERE
block_number >= :after_block_number AND block_number = :block_number
block_number < :before_block_number
""" """
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def export_block_range( def export_block(inspect_db_session, block_number: int) -> None:
inspect_db_session, after_block_number: int, before_block_number
) -> None:
export_bucket_name = get_export_bucket_name() export_bucket_name = get_export_bucket_name()
client = get_s3_client() client = get_s3_client()
mev_summary_json_results = inspect_db_session.execute( mev_summary_json_results = inspect_db_session.execute(
statement=MEV_SUMMARY_EXPORT_QUERY, statement=MEV_SUMMARY_EXPORT_QUERY,
params={ params={
"after_block_number": after_block_number, "block_number": block_number,
"before_block_number": before_block_number,
}, },
) )
@ -42,7 +38,7 @@ def export_block_range(
(f"{json.dumps(row)}\n".encode("utf-8") for (row,) in mev_summary_json_results) (f"{json.dumps(row)}\n".encode("utf-8") for (row,) in mev_summary_json_results)
) )
key = f"mev_summary/flashbots_{after_block_number}_{before_block_number}.json" key = f"mev_summary/flashbots_{block_number}.json"
client.upload_fileobj( client.upload_fileobj(
mev_summary_json_fileobj, mev_summary_json_fileobj,