=feat: change punk snipe to only check against the highest bid per punk
This commit is contained in:
parent
bb3ace07a1
commit
7638c97e88
@ -1,4 +1,4 @@
|
|||||||
from typing import List
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import (
|
||||||
ClassifiedTrace,
|
ClassifiedTrace,
|
||||||
Classification,
|
Classification,
|
||||||
@ -10,23 +10,44 @@ from mev_inspect.schemas.punk_snipe import PunkSnipe
|
|||||||
from mev_inspect.traces import get_traces_by_transaction_hash
|
from mev_inspect.traces import get_traces_by_transaction_hash
|
||||||
|
|
||||||
|
|
||||||
|
def _get_highest_punk_bid_per_index(
|
||||||
|
punk_bids: List[PunkBid], punk_index: int
|
||||||
|
) -> Optional[PunkBid]:
|
||||||
|
highest_punk_bid = None
|
||||||
|
|
||||||
|
for punk_bid in punk_bids:
|
||||||
|
if punk_bid.punk_index == punk_index:
|
||||||
|
if highest_punk_bid is None:
|
||||||
|
highest_punk_bid = punk_bid
|
||||||
|
|
||||||
|
elif punk_bid.price > highest_punk_bid.price:
|
||||||
|
highest_punk_bid = punk_bid
|
||||||
|
|
||||||
|
return highest_punk_bid
|
||||||
|
|
||||||
|
|
||||||
def get_punk_snipes(
|
def get_punk_snipes(
|
||||||
punk_bids: List[PunkBid], punk_bid_acceptances: List[PunkBidAcceptance]
|
punk_bids: List[PunkBid], punk_bid_acceptances: List[PunkBidAcceptance]
|
||||||
) -> List[PunkSnipe]:
|
) -> List[PunkSnipe]:
|
||||||
punk_snipe_list = []
|
punk_snipe_list = []
|
||||||
|
|
||||||
for punk_bid in punk_bids:
|
|
||||||
for punk_bid_acceptance in punk_bid_acceptances:
|
for punk_bid_acceptance in punk_bid_acceptances:
|
||||||
if punk_bid.punk_index == punk_bid_acceptance.punk_index:
|
highest_punk_bid = _get_highest_punk_bid_per_index(
|
||||||
if punk_bid.price > punk_bid_acceptance.min_price:
|
punk_bids, punk_bid_acceptance.punk_index
|
||||||
|
)
|
||||||
|
|
||||||
|
if highest_punk_bid is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if highest_punk_bid.price > punk_bid_acceptance.min_price:
|
||||||
punk_snipe = PunkSnipe(
|
punk_snipe = PunkSnipe(
|
||||||
block_number=punk_bid.block_number,
|
block_number=highest_punk_bid.block_number,
|
||||||
transaction_hash=punk_bid.transaction_hash,
|
transaction_hash=highest_punk_bid.transaction_hash,
|
||||||
trace_address=punk_bid.trace_address,
|
trace_address=highest_punk_bid.trace_address,
|
||||||
from_address=punk_bid.from_address,
|
from_address=highest_punk_bid.from_address,
|
||||||
punk_index=punk_bid.punk_index,
|
punk_index=highest_punk_bid.punk_index,
|
||||||
min_acceptance_price=punk_bid_acceptance.min_price,
|
min_acceptance_price=punk_bid_acceptance.min_price,
|
||||||
acceptance_price=punk_bid.price,
|
acceptance_price=highest_punk_bid.price,
|
||||||
)
|
)
|
||||||
|
|
||||||
punk_snipe_list.append(punk_snipe)
|
punk_snipe_list.append(punk_snipe)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user