diff --git a/mev_inspect/classifiers/specs/zero_ex.py b/mev_inspect/classifiers/specs/zero_ex.py index 2766299..a6c5fa8 100644 --- a/mev_inspect/classifiers/specs/zero_ex.py +++ b/mev_inspect/classifiers/specs/zero_ex.py @@ -28,11 +28,11 @@ class ZeroExSwapClassifier(SwapClassifier): if len(child_transfers) < 2: return None - token_in_address, token_in_amount = _get_0x_token_in_data( + token_out_address, token_out_amount = _get_0x_token_out_data( trace, child_transfers ) - token_out_address, token_out_amount = _get_0x_token_out_data(trace) + token_in_address, token_in_amount = _get_0x_token_in_data(trace) return Swap( abi_name=trace.abi_name, @@ -222,10 +222,10 @@ ZEROX_GENERIC_SPECS = [ ZEROX_CLASSIFIER_SPECS = ZEROX_CONTRACT_SPECS + ZEROX_GENERIC_SPECS -def _get_taker_token_in_amount( +def _get_taker_token_transfer_amount( trace: DecodedCallTrace, taker_address: str, - token_in_address: str, + token_address: str, child_transfers: List[Transfer], ) -> int: @@ -239,7 +239,7 @@ def _get_taker_token_in_amount( if taker_address == ANY_TAKER_ADDRESS: for transfer in child_transfers: - if transfer.token_address == token_in_address: + if transfer.token_address == token_address: return transfer.amount else: for transfer in child_transfers: @@ -249,12 +249,11 @@ def _get_taker_token_in_amount( raise RuntimeError("Unable to find transfers matching 0x order.") -def _get_0x_token_in_data( +def _get_0x_token_out_data( trace: DecodedCallTrace, child_transfers: List[Transfer] ) -> Tuple[str, int]: - order: List = trace.inputs["order"] - token_in_address = order[0] + token_out_address = order[0] if trace.function_signature in RFQ_SIGNATURES: taker_address = order[5] @@ -267,17 +266,16 @@ def _get_0x_token_in_data( f"0x orderbook function {trace.function_signature} is not supported" ) - token_in_amount = _get_taker_token_in_amount( - trace, taker_address, token_in_address, child_transfers + token_out_amount = _get_taker_token_transfer_amount( + trace, taker_address, token_out_address, child_transfers ) - return token_in_address, token_in_amount - - -def _get_0x_token_out_data(trace: DecodedCallTrace) -> Tuple[str, int]: - - order: List = trace.inputs["order"] - token_out_address = order[1] - token_out_amount = trace.inputs["takerTokenFillAmount"] - return token_out_address, token_out_amount + + +def _get_0x_token_in_data(trace: DecodedCallTrace) -> Tuple[str, int]: + order: List = trace.inputs["order"] + token_in_address = order[1] + token_in_amount = trace.inputs["takerTokenFillAmount"] + + return token_in_address, token_in_amount diff --git a/tests/test_0x.py b/tests/test_0x.py index 194d280..9943dcf 100644 --- a/tests/test_0x.py +++ b/tests/test_0x.py @@ -20,10 +20,10 @@ def test_fillLimitOrder_swap(trace_classifier: TraceClassifier): contract_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", from_address="0x00000000000e1d0dabf7b7c7b68866fc940d0db8", to_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", - token_in_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - token_in_amount=35000000000000000000, - token_out_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - token_out_amount=143949683150, + token_out_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + token_out_amount=35000000000000000000, + token_in_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + token_in_amount=143949683150, protocol=Protocol.zero_ex, error=None, ) @@ -50,10 +50,10 @@ def test__fillLimitOrder_swap(trace_classifier: TraceClassifier): contract_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", from_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", to_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", - token_in_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - token_in_amount=30000000, - token_out_address="0x9ff79c75ae2bcbe0ec63c0375a3ec90ff75bbe0f", - token_out_amount=100000001, + token_out_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + token_out_amount=30000000, + token_in_address="0x9ff79c75ae2bcbe0ec63c0375a3ec90ff75bbe0f", + token_in_amount=100000001, protocol=Protocol.zero_ex, error=None, ) @@ -80,10 +80,10 @@ def test_RfqLimitOrder_swap(trace_classifier: TraceClassifier): contract_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", from_address="0xdef171fe48cf0115b1d80b88dc8eab59176fee57", to_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", - token_in_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - token_in_amount=288948250430, - token_out_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - token_out_amount=70500000000000000000, + token_out_address="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + token_out_amount=288948250430, + token_in_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + token_in_amount=70500000000000000000, protocol=Protocol.zero_ex, error=None, ) @@ -110,10 +110,10 @@ def test__RfqLimitOrder_swap(trace_classifier: TraceClassifier): contract_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", from_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", to_address="0xdef1c0ded9bec7f1a1670819833240f027b25eff", - token_in_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - token_in_amount=979486121594935552, - token_out_address="0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", - token_out_amount=92404351093861841165644172, + token_out_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + token_out_amount=979486121594935552, + token_in_address="0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", + token_in_amount=92404351093861841165644172, protocol=Protocol.zero_ex, error=None, )