Merge pull request #164 from flashbots/0x-bug

This commit is contained in:
Gui Heise 2021-12-16 13:41:10 -05:00 committed by GitHub
commit 408ff02de3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -221,10 +221,16 @@ ZEROX_CLASSIFIER_SPECS = ZEROX_CONTRACT_SPECS + ZEROX_GENERIC_SPECS
def _get_taker_token_in_amount( def _get_taker_token_in_amount(
taker_address: str, token_in_address: str, child_transfers: List[Transfer] trace: DecodedCallTrace,
taker_address: str,
token_in_address: str,
child_transfers: List[Transfer],
) -> int: ) -> int:
if len(child_transfers) != 2: if trace.error is not None:
return 0
if len(child_transfers) < 2:
raise ValueError( raise ValueError(
f"A settled order should consist of 2 child transfers, not {len(child_transfers)}." f"A settled order should consist of 2 child transfers, not {len(child_transfers)}."
) )
@ -237,7 +243,8 @@ def _get_taker_token_in_amount(
for transfer in child_transfers: for transfer in child_transfers:
if transfer.to_address == taker_address: if transfer.to_address == taker_address:
return transfer.amount return transfer.amount
return 0
raise RuntimeError("Unable to find transfers matching 0x order.")
def _get_0x_token_in_data( def _get_0x_token_in_data(
@ -259,7 +266,7 @@ def _get_0x_token_in_data(
) )
token_in_amount = _get_taker_token_in_amount( token_in_amount = _get_taker_token_in_amount(
taker_address, token_in_address, child_transfers trace, taker_address, token_in_address, child_transfers
) )
return token_in_address, token_in_amount return token_in_address, token_in_amount