diff --git a/mev_inspect/classifiers/specs/cryptopunks.py b/mev_inspect/classifiers/specs/cryptopunks.py index 9fd283d..5070f3d 100644 --- a/mev_inspect/classifiers/specs/cryptopunks.py +++ b/mev_inspect/classifiers/specs/cryptopunks.py @@ -5,7 +5,7 @@ from mev_inspect.schemas.traces import ( from mev_inspect.schemas.classifiers import ( ClassifierSpec, PunkBidClassifier, - PunkAcceptBidClassifier, + PunkBidAcceptanceClassifier, ) CRYPTO_PUNKS_SPEC = ClassifierSpec( @@ -14,7 +14,7 @@ CRYPTO_PUNKS_SPEC = ClassifierSpec( valid_contract_addresses=["0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB"], classifiers={ "enterBidForPunk(uint)": PunkBidClassifier, - "acceptBidForPunk(uint,uint)": PunkAcceptBidClassifier, + "acceptBidForPunk(uint,uint)": PunkBidAcceptanceClassifier, }, ) diff --git a/mev_inspect/inspect_block.py b/mev_inspect/inspect_block.py index 656db7b..ca473bd 100644 --- a/mev_inspect/inspect_block.py +++ b/mev_inspect/inspect_block.py @@ -27,7 +27,7 @@ from mev_inspect.crud.liquidations import ( write_liquidations, ) from mev_inspect.miner_payments import get_miner_payments -from mev_inspect.punks import get_punk_bids +from mev_inspect.punks import get_punk_bid_acceptances, get_punk_bids from mev_inspect.swaps import get_swaps from mev_inspect.transfers import get_transfers from mev_inspect.liquidations import get_liquidations @@ -95,6 +95,9 @@ async def inspect_block( punk_bids = get_punk_bids(classified_traces) logger.info(f"Block: {block_number} -- Found {len(punk_bids)} punk bids") + punk_bid_acceptances = get_punk_bid_acceptances(classified_traces) + logger.info(f"Block: {block_number} -- Found {len(punk_bid_acceptances)} punk bids") + miner_payments = get_miner_payments( block.miner, block.base_fee_per_gas, classified_traces, block.receipts ) diff --git a/mev_inspect/punks.py b/mev_inspect/punks.py index bb38540..4f45197 100644 --- a/mev_inspect/punks.py +++ b/mev_inspect/punks.py @@ -1,4 +1,5 @@ from typing import List +from mev_inspect.schemas import punk_accept_bid from mev_inspect.schemas.traces import ( ClassifiedTrace, @@ -6,34 +7,34 @@ from mev_inspect.schemas.traces import ( DecodedCallTrace, ) from mev_inspect.schemas.punk_bid import PunkBid -from mev_inspect.schemas.punk_accept_bid import PunkAcceptBid +from mev_inspect.schemas.punk_accept_bid import PunkBidAcceptance from mev_inspect.traces import get_traces_by_transaction_hash -def get_punk_accept_bids(traces: List[ClassifiedTrace]) -> List[PunkAcceptBid]: - punk_accept_bids = [] +def get_punk_bid_acceptances(traces: List[ClassifiedTrace]) -> List[PunkBidAcceptance]: + punk_bid_acceptances = [] for _, transaction_traces in get_traces_by_transaction_hash(traces).items(): - punk_accept_bids += _get_punk_accept_bids_for_transaction( + punk_bid_acceptances += _get_punk_bid_acceptances_for_transaction( list(transaction_traces) ) - return punk_accept_bids + return punk_bid_acceptances -def _get_punk_accept_bids_for_transaction( +def _get_punk_bid_acceptances_for_transaction( traces: List[ClassifiedTrace], -) -> List[PunkAcceptBid]: +) -> List[PunkBidAcceptance]: ordered_traces = list(sorted(traces, key=lambda t: t.trace_address)) - punk_accept_bids = [] + punk_bid_acceptances = [] for trace in ordered_traces: if not isinstance(trace, DecodedCallTrace): continue elif trace.classification == Classification.punk_accept_bid: - punk_accept_bid = PunkAcceptBid( + punk_accept_bid = PunkBidAcceptance( block_number=trace.block_number, transaction_hash=trace.transaction_hash, trace_address=trace.trace_address, @@ -42,9 +43,9 @@ def _get_punk_accept_bids_for_transaction( min_price=trace.inputs["min_price"], ) - punk_accept_bids.append(punk_accept_bid) + punk_bid_acceptances.append(punk_accept_bid) - return punk_accept_bids + return punk_bid_acceptances def get_punk_bids(traces: List[ClassifiedTrace]) -> List[PunkBid]: diff --git a/mev_inspect/schemas/classifiers.py b/mev_inspect/schemas/classifiers.py index f4c8bc6..5b55d91 100644 --- a/mev_inspect/schemas/classifiers.py +++ b/mev_inspect/schemas/classifiers.py @@ -6,7 +6,7 @@ from pydantic import BaseModel from .traces import Classification, DecodedCallTrace, Protocol from .transfers import Transfer from .punk_bid import PunkBid -from .punk_accept_bid import PunkAcceptBid +from .punk_accept_bid import PunkBidAcceptance class Classifier(ABC): @@ -27,14 +27,14 @@ class PunkBidClassifier(Classifier): raise NotImplementedError() -class PunkAcceptBidClassifier(Classifier): +class PunkBidAcceptanceClassifier(Classifier): @staticmethod def get_classification() -> Classification: return Classification.punk_accept_bid @staticmethod @abstractmethod - def get_accept_bid(trace: DecodedCallTrace) -> PunkAcceptBid: + def get_accept_bid(trace: DecodedCallTrace) -> PunkBidAcceptance: raise NotImplementedError() diff --git a/mev_inspect/schemas/punk_accept_bid.py b/mev_inspect/schemas/punk_accept_bid.py index f015723..29def93 100644 --- a/mev_inspect/schemas/punk_accept_bid.py +++ b/mev_inspect/schemas/punk_accept_bid.py @@ -3,7 +3,7 @@ from typing import List from pydantic import BaseModel -class PunkAcceptBid(BaseModel): +class PunkBidAcceptance(BaseModel): block_number: int transaction_hash: str trace_address: List[int]