Added data types

This commit is contained in:
Guilherme Peyrelongue Heise 2021-08-03 15:03:32 -04:00
parent 1201623c1f
commit 790fbee002
2 changed files with 32 additions and 5 deletions

View File

@ -26,6 +26,7 @@ class LiquidationInspector(StrategyInspector):
# For each trace
for i in range(1, len(traces)):
trace = traces[i]
next = traces[i+1]
# Liquidation condition
if trace.classification == Classification.liquidate:
@ -35,7 +36,7 @@ class LiquidationInspector(StrategyInspector):
for i in trace.inputs:
if(i["name"] == '_purchaseAmount'):
value = trace.inputs[i]
liquidation_amount = trace.inputs[i]
elif (i["name"] == '_collateral'):
collateral_type = trace.inputs[i]
elif (i["name"] == '_reserve'):
@ -46,10 +47,14 @@ class LiquidationInspector(StrategyInspector):
liquidator = trace.from_address
# Find a transfer before liquidation with a to_address corresponding to the liquidator
for trace in traces[:i]:
if (trace.classification == Classification.transfer & trace.to_address == liquidator):
profit =
for tx in traces:
if (tx.classification == Classification.transfer & tx.to_address == liquidator):
#Calculate profit
amount_sent = tx.value
amount_received = next.value
profit = amount_received - amount_sent
# Add gas used*price and coinbase check
# Tag liquidation

View File

@ -0,0 +1,22 @@
from typing import Optional
from enum import Enum
from pydantic import BaseModel
from .classified_traces import ClassifiedTrace, Protocol
class StrategyType(Enum):
arbitrage = "arbitrage"
liquidation = "liquidation"
class Strategy(BaseModel):
strategy: StrategyType
traces: List[ClassifiedTrace]
protocols: List[Protocol]
class Liquidation(Strategy):
collateral_type: str
collateral_amount: int
collateral_source: str
profit: int
class Arbitrage(Strategy):
# strategy: Literal[StrategyType.arbitrage]