diff --git a/mev_inspect/miner_payments.py b/mev_inspect/miner_payments.py index f9add2a..c81c763 100644 --- a/mev_inspect/miner_payments.py +++ b/mev_inspect/miner_payments.py @@ -2,6 +2,7 @@ from typing import List from mev_inspect.schemas.classified_traces import ClassifiedTrace from mev_inspect.schemas.miner_payments import MinerPayment +from mev_inspect.schemas.receipts import Receipt from mev_inspect.traces import get_traces_by_transaction_hash from mev_inspect.transfers import ( filter_transfers, @@ -10,11 +11,14 @@ from mev_inspect.transfers import ( def get_miner_payments( - miner_address: str, traces: List[ClassifiedTrace] + miner_address: str, traces: List[ClassifiedTrace], receipts: List[Receipt] ) -> List[MinerPayment]: miner_payments = [] - for transaction_hash, transaciton_traces in get_traces_by_transaction_hash(traces): + traces_by_transaction_hash = get_traces_by_transaction_hash(traces) + + for receipt in receipts: + transaciton_traces = traces_by_transaction_hash[receipt.transaction_hash] eth_transfers = get_eth_transfers(transaciton_traces) miner_eth_transfers = filter_transfers( eth_transfers, to_address=miner_address.lower() @@ -27,7 +31,7 @@ def get_miner_payments( if total_eth_transfer_payment > 0: miner_payments.append( MinerPayment( - transaction_hash=transaction_hash, + transaction_hash=receipt.transaction_hash, total_eth_transfer_payment=total_eth_transfer_payment, ) ) diff --git a/mev_inspect/traces.py b/mev_inspect/traces.py index 626c313..a0cc49c 100644 --- a/mev_inspect/traces.py +++ b/mev_inspect/traces.py @@ -1,5 +1,5 @@ from itertools import groupby -from typing import Iterator, List, Tuple +from typing import Dict, List from mev_inspect.schemas.classified_traces import ClassifiedTrace @@ -36,10 +36,12 @@ def get_child_traces( def get_traces_by_transaction_hash( traces: List[ClassifiedTrace], -) -> Iterator[Tuple[str, List[ClassifiedTrace]]]: +) -> Dict[str, List[ClassifiedTrace]]: get_transaction_hash = lambda trace: trace.transaction_hash - for transaction_hash, transaction_traces in groupby( - sorted(traces, key=get_transaction_hash), - key=get_transaction_hash, - ): - yield transaction_hash, list(transaction_traces) + return { + transaction_hash: list(traces) + for transaction_hash, traces in groupby( + sorted(traces, key=get_transaction_hash), + key=get_transaction_hash, + ) + } diff --git a/scripts/inspect_block.py b/scripts/inspect_block.py index 9393cdb..539a58d 100644 --- a/scripts/inspect_block.py +++ b/scripts/inspect_block.py @@ -104,7 +104,9 @@ def _inspect_block( delete_classified_traces_for_block(db_session, block_number) write_classified_traces(db_session, classified_traces) - miner_payments = get_miner_payments(block_data.miner, classified_traces) + miner_payments = get_miner_payments( + block_data.miner, classified_traces, block_data.receipts + ) click.echo("Miner payments:") click.echo(json.dumps([p.dict() for p in miner_payments], indent=4))