diff --git a/mev_inspect/classifiers/specs/zero_ex.py b/mev_inspect/classifiers/specs/zero_ex.py index 79d5536..442523e 100644 --- a/mev_inspect/classifiers/specs/zero_ex.py +++ b/mev_inspect/classifiers/specs/zero_ex.py @@ -1,3 +1,4 @@ +import pdb from typing import Optional, List from mev_inspect.schemas.transfers import Transfer from mev_inspect.schemas.swaps import Swap @@ -20,32 +21,40 @@ class ZeroExSwapClassifier(SwapClassifier): ) -> Optional[Swap]: token_in_amount: int = 0 - taker_address: str + taker_address: str = "" order: List = trace.inputs["order"] - if "taker" in trace.inputs: - taker_address = trace.inputs["taker"] - else: - taker_address = order[5] - token_in_address: str = order[0] token_out_address: str = order[1] - token_out_amount: int = trace.inputs["takerTokenFillAmount"] + if "Rfq" in trace.function_signature: - pool_address = trace.to_address + taker_address = order[5] + + elif "Limit" in trace.function_signature: + + taker_address = order[6] + + else: + + raise NotImplementedError + + token_out_amount = trace.inputs["takerTokenFillAmount"] + contract_address = trace.to_address for transfer in child_transfers: if transfer.to_address == taker_address: token_in_amount = transfer.amount + pdb.set_trace() + return Swap( abi_name=trace.abi_name, transaction_hash=trace.transaction_hash, block_number=trace.block_number, trace_address=trace.trace_address, - pool_address=pool_address, + contract_address=contract_address, protocol=trace.protocol, from_address=trace.from_address, to_address=trace.to_address,