Merge pull request #242 from flashbots/sandwich-more-accurate

Allow sandwiches with large differences. Explicitly filter uniswap routers
This commit is contained in:
Luke Van Seters 2022-01-20 11:03:35 -05:00 committed by GitHub
commit 62d8125bcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,9 +2,9 @@ from typing import List, Optional
from mev_inspect.schemas.sandwiches import Sandwich from mev_inspect.schemas.sandwiches import Sandwich
from mev_inspect.schemas.swaps import Swap from mev_inspect.schemas.swaps import Swap
from mev_inspect.utils import equal_within_percent
SANDWICH_IN_OUT_MAX_PERCENT_DIFFERENCE = 0.01 UNISWAP_V2_ROUTER = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"
UNISWAP_V3_ROUTER = "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45"
def get_sandwiches(swaps: List[Swap]) -> List[Sandwich]: def get_sandwiches(swaps: List[Swap]) -> List[Sandwich]:
@ -34,6 +34,9 @@ def _get_sandwich_starting_with_swap(
sandwicher_address = front_swap.to_address sandwicher_address = front_swap.to_address
sandwiched_swaps = [] sandwiched_swaps = []
if sandwicher_address in [UNISWAP_V2_ROUTER, UNISWAP_V3_ROUTER]:
return None
for other_swap in rest_swaps: for other_swap in rest_swaps:
if other_swap.transaction_hash == front_swap.transaction_hash: if other_swap.transaction_hash == front_swap.transaction_hash:
continue continue
@ -48,11 +51,6 @@ def _get_sandwich_starting_with_swap(
elif ( elif (
other_swap.token_out_address == front_swap.token_in_address other_swap.token_out_address == front_swap.token_in_address
and other_swap.token_in_address == front_swap.token_out_address and other_swap.token_in_address == front_swap.token_out_address
and equal_within_percent(
other_swap.token_in_amount,
front_swap.token_out_amount,
SANDWICH_IN_OUT_MAX_PERCENT_DIFFERENCE,
)
and other_swap.from_address == sandwicher_address and other_swap.from_address == sandwicher_address
): ):
if len(sandwiched_swaps) > 0: if len(sandwiched_swaps) > 0: