Add Rfq/Limit distinction

This commit is contained in:
Gui Heise 2021-11-22 11:20:40 -05:00
parent cf71272c10
commit dbe40249b5

View File

@ -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,