Classifiers: add 1inch Limit Order Protocol

This commit is contained in:
Leo Arias 2021-10-07 18:35:01 +00:00
parent c94b2523c1
commit 3ddfcfdab0
4 changed files with 1040 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,8 @@ from .weth import WETH_CLASSIFIER_SPECS, WETH_ADDRESS
from .zero_ex import ZEROX_CLASSIFIER_SPECS from .zero_ex import ZEROX_CLASSIFIER_SPECS
from .balancer import BALANCER_CLASSIFIER_SPECS from .balancer import BALANCER_CLASSIFIER_SPECS
from .compound import COMPOUND_CLASSIFIER_SPECS from .compound import COMPOUND_CLASSIFIER_SPECS
from .one_inch import ONE_INCH_CLASSIFIER_SPECS
ALL_CLASSIFIER_SPECS = ( ALL_CLASSIFIER_SPECS = (
ERC20_CLASSIFIER_SPECS ERC20_CLASSIFIER_SPECS

View File

@ -0,0 +1,37 @@
from mev_inspect.schemas.classified_traces import (
DecodedCallTrace,
Protocol,
)
from mev_inspect.schemas.classifiers import (
ClassifierSpec,
SwapClassifier,
)
class OneInchFillOrderProtocolSwapClassifier(SwapClassifier):
@staticmethod
def get_swap_recipient(trace: DecodedCallTrace) -> str:
return trace.from_address
FILL_ORDER_SIGNATURE = (
"fillOrder((uint256,address,address,bytes,bytes,bytes,bytes,bytes,bytes,bytes),"
"bytes,uint256,uint256,uint256)"
)
FILL_ORDER_SIGNATURE = (
"fillOrder((uint256,address,address,bytes,bytes,bytes,bytes,bytes,bytes,bytes),"
"bytes,uint256,uint256,uint256)"
)
ONE_INCH_LIMIT_ORDER_PROTOCOL_SPEC = ClassifierSpec(
abi_name="1inchLimitOrderProtocol",
protocol=Protocol.one_inch,
classifications={
FILL_ORDER_SIGNATURE: OneInchFillOrderProtocolSwapClassifier,
},
)
ONE_INCH_CLASSIFIER_SPECS = [ONE_INCH_LIMIT_ORDER_PROTOCOL_SPEC]

View File

@ -44,6 +44,7 @@ class Protocol(Enum):
balancer_v1 = "balancer_v1" balancer_v1 = "balancer_v1"
compound_v2 = "compound_v2" compound_v2 = "compound_v2"
cream = "cream" cream = "cream"
one_inch = "1inch"
class ClassifiedTrace(Trace): class ClassifiedTrace(Trace):