diff --git a/mev_inspect/aave_liquidations.py b/mev_inspect/aave_liquidations.py index dc58673..db45a37 100644 --- a/mev_inspect/aave_liquidations.py +++ b/mev_inspect/aave_liquidations.py @@ -11,6 +11,10 @@ from mev_inspect.schemas.classified_traces import ( Protocol, ) +<<<<<<< HEAD +======= +from mev_inspect.schemas.transfers import ERC20Transfer, aTokenTransfer, Transfer +>>>>>>> Aave transfers from mev_inspect.schemas.liquidations import Liquidation from mev_inspect.transfers import get_transfer @@ -84,15 +88,29 @@ def _get_payback_token_and_amount( ) -> Tuple[str, int]: """Look for and return liquidator payback from liquidation""" + child: ClassifiedTrace + child_transfer: Transfer + for child in child_traces: - if child.classification == Classification.transfer: + if child.classification == Classification.transfer and isinstance( + child, DecodedCallTrace + ): + if liquidation.inputs["_receiveAToken"]: - child_transfer = ERC20Transfer.from_trace(child) - - if ( - child_transfer.to_address == liquidator - ) and child.from_address in AAVE_CONTRACT_ADDRESSES: - return child_transfer.token_address, child_transfer.amount + child_transfer = aTokenTransfer.from_trace(child) + + if ( + child_transfer.to_address == liquidator + ) and child.from_address in AAVE_CONTRACT_ADDRESSES: + return child_transfer.token_address, child_transfer.amount + + else: + + child_transfer = ERC20Transfer.from_trace(child) + + if ( + child_transfer.to_address == liquidator + ) and child.from_address in AAVE_CONTRACT_ADDRESSES: return liquidation.inputs["_collateral"], 0 diff --git a/mev_inspect/schemas/transfers.py b/mev_inspect/schemas/transfers.py index 9719c2b..f39be0a 100644 --- a/mev_inspect/schemas/transfers.py +++ b/mev_inspect/schemas/transfers.py @@ -2,10 +2,8 @@ from typing import List from pydantic import BaseModel - ETH_TOKEN_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - class Transfer(BaseModel): block_number: int transaction_hash: str