diff --git a/mev_inspect/classifiers/specs/balancer.py b/mev_inspect/classifiers/specs/balancer.py index b2e57ce..78ffe43 100644 --- a/mev_inspect/classifiers/specs/balancer.py +++ b/mev_inspect/classifiers/specs/balancer.py @@ -22,7 +22,11 @@ class BalancerSwapClassifier(SwapClassifier): child_transfers: List[Transfer], ) -> Optional[Swap]: - swap = create_swap_from_transfers(trace, prior_transfers, child_transfers) + recipient_address = trace.from_address + + swap = create_swap_from_transfers( + trace, recipient_address, prior_transfers, child_transfers + ) return swap diff --git a/mev_inspect/classifiers/specs/curve.py b/mev_inspect/classifiers/specs/curve.py index d1ed717..688f069 100644 --- a/mev_inspect/classifiers/specs/curve.py +++ b/mev_inspect/classifiers/specs/curve.py @@ -21,7 +21,11 @@ class CurveSwapClassifier(SwapClassifier): child_transfers: List[Transfer], ) -> Optional[Swap]: - swap = create_swap_from_transfers(trace, prior_transfers, child_transfers) + recipient_address = trace.from_address + + swap = create_swap_from_transfers( + trace, recipient_address, prior_transfers, child_transfers + ) return swap diff --git a/mev_inspect/classifiers/specs/uniswap.py b/mev_inspect/classifiers/specs/uniswap.py index 3c35b9e..ed094d8 100644 --- a/mev_inspect/classifiers/specs/uniswap.py +++ b/mev_inspect/classifiers/specs/uniswap.py @@ -24,7 +24,14 @@ class UniswapV3SwapClassifier(SwapClassifier): child_transfers: List[Transfer], ) -> Optional[Swap]: - swap = create_swap_from_transfers(trace, prior_transfers, child_transfers) + if trace.inputs is not None and "recipient" in trace.inputs: + recipient_address = trace.inputs["recipient"] + else: + recipient_address = trace.from_address + + swap = create_swap_from_transfers( + trace, recipient_address, prior_transfers, child_transfers + ) return swap @@ -36,7 +43,14 @@ class UniswapV2SwapClassifier(SwapClassifier): child_transfers: List[Transfer], ) -> Optional[Swap]: - swap = create_swap_from_transfers(trace, prior_transfers, child_transfers) + if trace.inputs is not None and "to" in trace.inputs: + recipient_address = trace.inputs["to"] + else: + recipient_address = trace.from_address + + swap = create_swap_from_transfers( + trace, recipient_address, prior_transfers, child_transfers + ) return swap diff --git a/mev_inspect/classifiers/utils.py b/mev_inspect/classifiers/utils.py index ff4f101..8d99be7 100644 --- a/mev_inspect/classifiers/utils.py +++ b/mev_inspect/classifiers/utils.py @@ -8,16 +8,12 @@ from mev_inspect.schemas.traces import DecodedCallTrace, ClassifiedTrace def create_swap_from_transfers( trace: DecodedCallTrace, + recipient_address: str, prior_transfers: List[Transfer], child_transfers: List[Transfer], ) -> Optional[Swap]: pool_address = trace.to_address - if trace.inputs is not None and "to" in trace.inputs: - recipient_address = trace.inputs["to"] - else: - recipient_address = trace.from_address - if recipient_address is None: return None